在ubuntu下搭建stm32開發環境
從零開始到點亮小燈
一直用的MDK開發stm32,也在用ubuntu,瞭解到linux下也能開發arm後就一直想試試在ubuntu下寫一寫stm32的代碼。前幾天折騰了一番,終於成功把點亮小燈的程序在stm32上跑起來了。在這裏記錄下整個過程。
1、思路
這裏有篇教程Ubuntu下使用Makefile開發STM32,教程裏教你一步一步搭建開發環境。總體思路是使用makefile將stm32的庫文件代碼和用戶代碼組織起來,makefile告訴編譯器該怎麼編譯這些文件,編譯鏈接工作gcc-arm來幹,最後使用st-link將生成的二進制文件下載到stm32上。
我也採用相同的思路,只是因爲我不會makefile,所以這部分工作就交給STM32cubeMX來幹。
2、使用的工具
軟件
- 串口助手:minicom或者cutecom
- 編譯器: gcc-arm-none-eabi
- 編譯工具:cmake
- 下載工具:STM32cubeProgrammer或st-link
- 代碼配置工具:STM32cubeMX
- 依賴庫
硬件平臺
- 野火stm32f103vet6開發板(野火指南者)
- stlink
3、配置過程
3.1 安裝串口調試助手
我裝了兩個串口助手,minicom和cutecom,minicom是基於命令行的,而cute是做成圖形界面的我在搜minicom的使用教程時偶然看到了cutecom,索性就裝了,cutecom使用起來比較簡單,跟windows下的串口助手一樣。
minicom
sudo apt-get install minicom
minicom的使用教程看這裏
3.2 安裝交叉編譯器gcc-arm
記一次在64位Ubuntu 16.04下成功安裝arm-none-eabi-gcc交叉編譯器的過程
3.3 安裝st-link驅動
Ubuntu16.04中安裝stlink驅動
這裏還可以選擇ST官方出的STM32cubeProgrammer下載工具,據說十分強大。直接去官網下載安裝包安裝就成,不過它要求Oracle JRE或者open JFX環境,ubuntu默認是openJDK,我就是這個java環境卡了好久沒搞定才用的stlink,如果有誰有辦法搞定的話請務必給我留言,不勝感激。
3.4 安裝cmake工具
sudo apt-get install cmake
3.5安裝STM32cubeMX
STM32cubeMX的安裝也十分簡單,到ST官網下載對應安裝包安裝就行了。
4、生成代碼
打開STM32cubeMX,選擇芯片型號並配置,輸出文件選擇makefile。第一次運行會下載固件庫,下載花的時間比較長。
然後在main.c文件裏寫入LED閃爍的程序
while (1)
98 {
99 /* USER CODE END WHILE */
100
101 /* USER CODE BEGIN 3 */
102 /* USER CODE BEGIN 3 */
103 HAL_Delay(1000);
104 HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_0);
105 }
106 /* USER CODE END 3 */
5、編譯
生成代碼後,我們進入到工程所在的文件夾,打開終端
make
編譯完成後會多出一個build文件夾,編譯的中間文件和生成的二進制文件.hex都在這
6、下載
打開stlink GUI,連接好stlink和開發板,點擊連接,等到連接好後打開上一步生成的.hex文件,然後點擊下載就可以了
*至此我們就完成了從零開始搭建開發環境到下載程序運行的全部步驟
- 文中若有錯誤和不足之處歡迎之處並給出建議