系統:linux mint 18.3 xfce,windows10
stm32開發板:正點原子mini板(stm32f103rc)
燒寫器:stlink v2
如果是JLINK的可以參考這篇
需要軟件:
鏈接:https://pan.baidu.com/s/1nxgh1VF 密碼:rvzu
2018/4/1更新
系統:manjaro xfce 64bit
stm32型號:f407vet6
燒寫器:stlink v2
基於arch Linux的manjaro安裝軟件更加簡單方便,步驟和下列初版教程一樣,為了運行stm32cubemx和sw4stm32,需要安裝jdk或者jre環境,我自己把兩個都安裝上了,在manjaro的軟件包管理器搜索安裝,如下圖
下載安裝stm32cubemx和sw4stm32下面有介紹,這里就介紹一下manjaro下安裝stlink和openocd的教程,非常簡單,終端執行
$ yaourt stlink
- 1
和
$ yaourt openocd
- 1
前提是已經安裝了AUR軟件包管理器yaourt
,其實在安裝sw4stm32的時候就會提示安裝stlink驅動的,應該那時就已經安裝了stlink驅動了,為了確保順利重新安裝了一遍。
在win系統下下載安裝上面兩個軟件很簡單,但是記得要先安裝java運行環境,可以前往java官網下載,相關教程自行百度。
下面主要介紹Linux環境下的配置:
(1) STM32CubeMX(4.24.0) ,STM32CUbeF1
第一個是配置stm32並且生成代碼的軟件,下載來后里面有win,linux兩平台的軟件,雙擊linux文件安裝。第二個stm32f1系列的軟件包,使用STM32CubeMX需要用到。
(2) sw4stm32 (目前最新2.4版本,2018/01/16)
ac6和st聯合開發,基於eclipse,這個下載比較困難建議用axel多線程下載,博主是之前在win使用IDM下載的
注意:前面兩個軟件下載需要注冊帳號,一個是ST帳號,一個是openstm32帳號,sw4stm32是run文件的,linux安裝run文件教程請自行搜索。
使用另一台電腦安裝前面兩個軟件的時候遇到了麻煩,新裝的linux mint 18.3 xfce系統,沒有java環境,經過測試,安裝了Openjdk環境(直接下載的jdk失敗了)
終端執行下面命令apt install openjdk-8*
安裝和jdk8相關的軟件(我自己沒有安裝最新的jdk9,有興趣的伙伴可以試試)安裝sw4stm32的時候還好,run文件很好安裝,網上教程一大堆(主要是要有java環境),安裝STM32CUbeMX的時候,之前在自己電腦是直接雙擊
SetupSTM32CubeMX-4.23.0.linux
,但是出現了下列錯誤報告無法執行文件 “SetupSTM32CubeMX-4.23.0.linux”.
執行子進程“/home/mint/App/en.stm32cubemx/SetupSTM32CubeMX-4.23.0.linux”失敗(沒有那個文件或目錄).
查找一番后,通過下面的方法解決了問題
終端執行java -jar SetupSTM32CubeMX-4.23.0.exe
然后就可以安裝了
安裝完以后要想打開,進入安裝目錄,例如我的在/home/mint/App/stm32cubemx/
,目錄下有個執行文件STM32CubeMX
,如果發現雙擊無法運行並且出現前面的錯誤提示,同樣在終端執行
java -jar STM32CubeMX
- 1
為了避免每次都那么麻煩,可以在桌面建立一個啟動器,啟動命令為java -jar /home/mint/App/stm32cubemx/STM32CubeMX
(3) gcc-arm-none-eabi
ARM的編譯鏈(參考鏈接:http://blog.csdn.net/zhengyangliu123/article/details/54783443)
關於這一點,我自己和網上的不太同,我在windows下面使用的是網站https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads 下載的工具鏈,也有linux64版本的,但是我自己電腦在安裝完sw4stm32后能正常編譯,所以不知道是本機就帶有還是sw4stm32安裝的時候帶有,沒有做深入探討,希望大神告知,在后面要燒寫的時候看到錯誤提示沒有gdb,就使用apt安裝了,在終端執行下面命令:
sudo apt install gdb-arm-none-eabi
看到apt推薦安裝gcc-arm-none-eabi
,所以又安裝上了
sudo apt install gcc-arm-none-eabi
我的操作應該是手動安裝了ARM需要的編譯工具鏈,而直接在上述網站下載的是已經提供好的整體的工具鏈,只要把安裝目錄寫到環境變量讓系統能找到軟件目錄即可。
(4) stlink
這是linux的stlink驅動,安裝考鏈接:
ubuntu安裝stlink 紅聯
Ubuntu安裝STLINK CSDN博客
安裝stlink的時候一定要先安裝依賴,不然make的時候就會出錯。
(5) openocd
下載后解壓,解壓后有INSTALL安裝指導教程,就是linux一般軟件的安裝步驟,先./configure,然后make,然后sudo make install。
要先安裝stlink驅動,不然在./configure 檢查環境的時候會提升找不到相關驅動
執行完以上步驟,stm32在linux環境下的開發環境就已經完成了,如果過程中出現任何其他問題請自行百度。
下面介紹簡單的基於STM32CubeMX的流水燈。
先介紹怎么打開STM32CubeMX,很簡單,進去安裝目錄,例如我的安裝目錄如下圖:
直接雙擊運行即可,或者命令行運行,如果覺的不方便的話可以在桌面建立啟動器,在linux mint下非常簡單,自定義圖標也方便,在安裝目錄下的help子目錄有個圖標文件STM32CubeMX.ico,使用gimp將其轉化為png格式就可以作圖標使用了,ubuntu系統下好像比較麻煩。順便吐槽一下,以前用ubuntu總是有莫名其妙的bug,后來知道mint是排名第一的linux系統,也是基於utuntu開發的,但是穩定性非常好,這樣mint就相當於即有ubuntu的流行性,又有自身的穩定性,這一點也是我從win環境全面移植到linux的主要原因(不是雙系統喔,其實並沒有那么糟糕)。
sw4stm32安裝后會自動在桌面上生成快捷方式。
(1)打開STM32CubeMX,點擊左上角工具欄Help–>Install New Libraries,點擊左下角From Local…,選擇之前下載的STM32CUbeF1
(2) 在stm32cubemx下選擇 New Project,選擇芯片型號,正點原子Mini板是STM32F103RCT6,選擇PA8和PD2,點擊選擇GPIO——Output,如下圖:
(3)選擇工具欄Project–>settings,設置按下圖:
(4)點擊Configuration,選擇GPIO,更改PA8和PD2的Output level和最大輸出速率
(5) 點擊Project–>Generate Code,就會在之前設置的目錄下生成如下目錄:
(6) 生成工程后有這么些文件,然后用sw4stm32打開:
詳細過程參考https://community.arm.com/cn/b/blog/posts/linux-stm32—nucleo-f429zi
選擇 File->Import->General->Exist Project into Workspace
或者直接在剛剛生成的目錄下,進去子目錄SW4STM32/led2,雙擊.cproject
,會自動使用sw4stm32打開的
(7)先點擊Build(錘子的標志),一般不會有問題,然后修改main.c代碼如下圖,實現跑馬燈效果
(8) 點擊run(綠色箭頭的標志),燒寫到stm32里面,實現預定效果