第1點(diǎn):
我們用戶編寫的代碼,必須放在 user code begin 和 end 之間;否則,當(dāng)我們修改stm32cubemx 項(xiàng)目的 配置時(shí),再次生成代碼,就會(huì)刪除之前的代碼;正確做法如下圖所示:

我們用戶編寫的代碼,必須放在 user code begin 和 end 之間
第2點(diǎn):
在proteus中,電源需要更改成3.3V,VDDA添加到電源VCC/GND中去;VSSA添加到GND中去;如下圖所示:


電源需要改成3.3V
第3點(diǎn):
HAL_Delay(__IO uint32_t Delay)延時(shí)函數(shù)在stm32f1xx_hal.c里面,該函數(shù)能實(shí)現(xiàn)ms級(jí)別的延時(shí);該函數(shù)體前面有一個(gè)關(guān)鍵字__weak,該關(guān)鍵字簡單的說,表明該函數(shù)允許被重寫。

HAL_Delay(__IO uint32_t Delay)
第4點(diǎn):
在proteus中,由于proteus中 軟件的問題,導(dǎo)致程序中雖然IO口設(shè)置了內(nèi)部上拉,但在proteus仿真軟件中,卻是開漏的(也就是說IO口沒有高電平狀態(tài))。
而我們STM32單片機(jī)的外部中斷,需要IO口出現(xiàn)一個(gè)下降沿或者上升沿,才可以觸發(fā)中斷。所以我們在IO口外面加上拉電阻,便于產(chǎn)生跳邊沿,進(jìn)而觸發(fā)外部中斷;
下圖所示LED的限流電阻R1,不能設(shè)置過大,設(shè)置太大會(huì)導(dǎo)致流過LED的電流過小,LED不發(fā)光。本次我們設(shè)置成100Ω,讓實(shí)驗(yàn)現(xiàn)象更加明顯。

需要添加上拉電阻,限流電阻不能太大
第5點(diǎn):
下圖所示的這個(gè)按鍵稱為自鎖按鍵, 按下去之后是不會(huì)彈起來的,始終保持當(dāng)前狀態(tài);
我們在做外部中斷實(shí)驗(yàn)時(shí)需要輕觸按鍵,這種按鍵是按下去之后是會(huì)彈起來的,會(huì)恢復(fù)之前的狀態(tài)。

自鎖按鍵

輕觸按鍵
第6點(diǎn):
在keil軟件中,一定要勾選上Creat HEX File選項(xiàng),這樣項(xiàng)目編譯之后才會(huì)生成HEX文件,proteus軟件加載HEX文件,實(shí)現(xiàn)STM32單片機(jī)程序的仿真。
還有就是在keil代碼中,修改了代碼一定要重新編譯,然后再在proteus中去觀察實(shí)驗(yàn)現(xiàn)象。

最后
注意上述幾點(diǎn),就能將外部中斷實(shí)驗(yàn)成功的進(jìn)行下去了。
中斷回調(diào)函數(shù)代碼如下圖所示,實(shí)現(xiàn)兩個(gè)按鍵分別控制LED的亮和滅;

兩個(gè)按鍵分別控制LED的亮和滅;

實(shí)驗(yàn)現(xiàn)象
-
單片機(jī)
+關(guān)注
關(guān)注
6078文章
45548瀏覽量
672698 -
Proteus
+關(guān)注
關(guān)注
79文章
1692瀏覽量
110690 -
STM32
+關(guān)注
關(guān)注
2312文章
11182瀏覽量
374266 -
回調(diào)函數(shù)
+關(guān)注
關(guān)注
0文章
95瀏覽量
12229 -
stm32cubemx
+關(guān)注
關(guān)注
5文章
290瀏覽量
17446
發(fā)布評(píng)論請先 登錄
新手怎樣如何學(xué)習(xí)單片機(jī),有哪些注意事項(xiàng)?
Proteus仿真單片機(jī)串口的注意事項(xiàng)和實(shí)物調(diào)試注意事項(xiàng)
使用有ISP功能的單片機(jī)的注意事項(xiàng)
基于Proteus軟件的單片機(jī)仿真教學(xué)
STM32單片機(jī)硬件關(guān)鍵基礎(chǔ)精華及注意事項(xiàng)
單片機(jī)系統(tǒng)設(shè)計(jì)與仿真 基于PROTEUS
51單片機(jī)怎么檢測輸入的高電平_檢測方法及注意事項(xiàng)
PIC低檔單片機(jī)使用注意事項(xiàng)
Proteus仿真STC51單片機(jī)流水燈注意事項(xiàng)
《電子DIY》之藍(lán)牙的使用,Proteus仿真單片機(jī)串口的注意事項(xiàng)和實(shí)物調(diào)試注意事項(xiàng)。玩轉(zhuǎn)單片機(jī)串口詳細(xì)零基礎(chǔ)版
華大單片機(jī)設(shè)計(jì)特別注意事項(xiàng)(上)
GD32單片機(jī)GPIO結(jié)構(gòu)及注意事項(xiàng)
使用proteus仿真STM32單片機(jī)的注意事項(xiàng)
評(píng)論