本文例子參考《STM32單片機開發實體——基于Proteus虛擬仿真與HAL/LL庫》
源代碼:https://github.com/LanLinnet/STM33F103R6
專案要求
STM32單片機控制單個LED燈亮滅,在PC0引腳控制LED燈以1s為周期閃爍,
硬體設計
- 在上一節的基礎上,在Proteus中添加電路如下圖所示,

- 打開CubeMX,按照建立工程,配置PC0引腳為GPIO_Output,點擊“Generator Code”生成Keil工程,

注意:我們這里沒有選擇時鐘振蕩源,可以按照上一節中介紹的設定,也可以使用內部默認的RC振蕩器,同時我們使用默認的推挽輸出模式,也可以根據需要通過cubeMX修改GPIO引腳的輸出模式,
軟體撰寫
- 點擊“Open Project”在Keil中打開工程,雙擊“main.c”檔案,我們撰寫的程式要盡量寫在
/* USER CODE BEGIN */和/* USER CODE END */之間,這樣我們如果后面在CubeMX中修改一些配置并重新“Generator Code”時就不會影響我們自己寫的代碼了,

- 我們在CubeMX配置硬體并生成工程時就已經添加了基于HAL/LL庫的初始代碼,其說明具體檔案可在ST官網下載,搜索GPIO可以看到與其相關的API函式有很多,

- 這里我們使用
HAL_GPIO_TogglePin()函式實作管腳電平反轉,

使用HAL_Delay()函式實作軟體延時,

在while(1)回圈中輸入以下代碼HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_0); //翻轉PC0輸出狀態 HAL_Delay(500); //延時500ms
聯合除錯
- 點擊運行,生成HEX檔案,
- 在Proteus中加載相應HEX檔案,點擊運行,可以看到LED燈不斷閃爍,

LED燈亮

LED燈滅
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/463998.html
標籤:其他
下一篇:將空XML資料節點顯示為文本訊息
