本文轉載自http://blog.csdn.net/charmingsun/article/details/50802267,本教程以點亮一盞LED燈爲目的爲大家演示用STM32CubeMX、Keil、ST-Link開發STM32程序的一般方法。
一、學習前的準備工作
硬件:一塊STM32開發板,一個ST-Link;(我使用的開發板是NUCLEO-F411RE)
軟件:裝好ST-Link的驅動程序,裝好STM32CubeMX,裝好Keil;
文檔:開發板的原理圖、芯片的參考手冊和HAL驅動說明書。
附:STM32F4xx HAL驅動說明書
二、創建一個新的STM32CubeMX工程
打開STM32CubeMX,然後單擊New Project:
選擇Series(系列)、Lines(系列)、Package(封裝),然後選中自己MCU的型號,點擊OK:(我的MCU是STM32F411RE,64引腳LQFP封裝)
至此一個STM32CubeMX工程已經建立好:
三、配置對應引腳,然後生成Keil工程
打開開發板原理圖,查看LED燈對應的引腳:(如圖所示,讓PA5引腳輸出高電平即可點亮LED)
點擊Pinout,然後單擊LED燈對應的引腳,選擇GPIO_Output模式:(將PA5設置成通用輸入輸出口的輸出模式,具體請參考Reference manual中的GPIO introduction)
由於本例程不需要配置時鐘、中間件和外圍設備,也不需要計算功耗,所以Clock Configurantion、Configuration、Power Consumption Caculator保持默認。
點擊菜單欄的Project->Settings,輸入STM32CubeMX工程名稱、保存路徑以及自己的工具鏈/集成編譯環境,Code Generator中的設置保持默認,然後點擊OK:(我的STM32CubeMX工程名稱爲LD2,保存路徑爲桌面,集成編譯環境爲Keil 5)
然後點擊菜單欄的Project->Generate Code,或者點擊快捷鍵生成包含HAL庫的Keil工程以及初始化代碼。此時對應路徑上即會出現一個以此STM32CubeMX工程名稱爲名稱的文件夾。打開對應路徑上的文件夾,其中以.ioc爲擴展名的文件即爲STM32CubeMX的工程文件,以集成編譯環境爲名字的文件夾中含有以此STM32CubeMX工程名稱爲名稱的此集成編譯環境的工程文件,Drivers目錄中包含了驅動程序,Inc目錄中包含了頭文件,Src目錄中包含了源代碼:(LD2.ioc文件即爲剛剛創建的STM32CubeMX工程,MDK-ARM文件夾中的LD2.uvprojx文件即爲剛剛生成的Keil工程)
四、 在Keil工程中添加自己的代碼,然後編譯、下載
打開Keil工程,根據註釋找到添加代碼的地方。請不要在提示之外的地方添加代碼,否則再次生成STM32CubeMX工程時會被刪除:(因爲STM32CubeMX已經幫我們生成了初始化代碼,所以我們只需要在/* USER CODE BEGIN 2 /與/ USER CODE END 2 */之間添加一句使PA5輸出高電平的代碼)
打開HAL驅動說明書找到我們需要的API,然後根據說明添加代碼:(根據說明得到使PA5輸出高電平的代碼爲HAL_GPIO_WritePin (GPIOA, GPIO_PIN_5, GPIO_PIN_SET);)
往工程中添加代碼,然後點擊編譯,用ST-Link連接好計算機和開發板後點擊下載:
五、 下載完成後復位開發板,然後開發板的LD2(綠燈)亮了