第1點:
我們用戶編寫的代碼,必須放在 user code begin 和 end 之間;否則,當我們修改stm32cubemx 項目的 配置時,再次生成代碼,就會刪除之前的代碼;正確做法如下圖所示:
我們用戶編寫的代碼,必須放在 user code begin 和 end 之間
第2點:
在proteus中,電源需要更改成3.3V,VDDA添加到電源VCC/GND中去;VSSA添加到GND中去;如下圖所示:
電源需要改成3.3V
第3點:
HAL_Delay(__IO uint32_t Delay)延時函數在stm32f1xx_hal.c里面,該函數能實現ms級別的延時;該函數體前面有一個關鍵字__weak,該關鍵字簡單的說,表明該函數允許被重寫。
HAL_Delay(__IO uint32_t Delay)
第4點:
在proteus中,由于proteus中 軟件的問題,導致程序中雖然IO口設置了內部上拉,但在proteus仿真軟件中,卻是開漏的(也就是說IO口沒有高電平狀態)。
而我們STM32單片機的外部中斷,需要IO口出現一個下降沿或者上升沿,才可以觸發中斷。所以我們在IO口外面加上拉電阻,便于產生跳邊沿,進而觸發外部中斷;
下圖所示LED的限流電阻R1,不能設置過大,設置太大會導致流過LED的電流過小,LED不發光。本次我們設置成100Ω,讓實驗現象更加明顯。
需要添加上拉電阻,限流電阻不能太大
第5點:
下圖所示的這個按鍵稱為自鎖按鍵, 按下去之后是不會彈起來的,始終保持當前狀態;
我們在做外部中斷實驗時需要輕觸按鍵,這種按鍵是按下去之后是會彈起來的,會恢復之前的狀態。
自鎖按鍵
輕觸按鍵
第6點:
在keil軟件中,一定要勾選上Creat HEX File選項,這樣項目編譯之后才會生成HEX文件,proteus軟件加載HEX文件,實現STM32單片機程序的仿真。
還有就是在keil代碼中,修改了代碼一定要重新編譯,然后再在proteus中去觀察實驗現象。
最后
注意上述幾點,就能將外部中斷實驗成功的進行下去了。
中斷回調函數代碼如下圖所示,實現兩個按鍵分別控制LED的亮和滅;
兩個按鍵分別控制LED的亮和滅;
實驗現象
-
單片機
+關注
關注
6063文章
44928瀏覽量
647142 -
Proteus
+關注
關注
79文章
1692瀏覽量
108169 -
STM32
+關注
關注
2290文章
11017瀏覽量
362469 -
回調函數
+關注
關注
0文章
88瀏覽量
11828 -
stm32cubemx
+關注
關注
5文章
286瀏覽量
15985
發布評論請先 登錄
使用有ISP功能的單片機的注意事項

PIC低檔單片機使用注意事項

《電子DIY》之藍牙的使用,Proteus仿真單片機串口的注意事項和實物調試注意事項。玩轉單片機串口詳細零基礎版

評論