因為keil的難用...以前開發stm32,我都是使用stm32cube生成了項目文件之後,用clion編輯,然後用keil編譯下載加Debug.說實話,整體感覺還不錯,但總感覺怪怪的.
也曾嘗試過SW4STM32和TrueStudio等,但是用eclipse改的軟體,總是喜歡不起來.
安裝了最新的clion 2019之後,突然發現新建工程時竟然有stm32cubeMX的選項!!! 哇噻噻!!!(狂喜.jpg)
趕緊去找Clion的博客上去翻找,然後發現了這麼一篇博文:
CLion 2019.1 EAP: CLion for Embedded Development, Part III
裡面簡略的記錄了Clion 2019.1更新後新添加的Embedded功能的使用介紹.
這麼好的東西,立馬動手! 於是就有了本文.
注意:本文適用於使用過clion和stm32cubeMX的讀者.
? 建議將本文閱讀一遍後,再照著開始搞,尤其是後面的重點注意!!!部分要先看一下.
當然,最新版的clion,你得安裝一個~
這麼好用的東西,必須得搞一個啊,怎麼裝我就不介紹了.
這貨是用來編譯stm32程序的交叉編譯工具鏈,在mac上的安裝方式是:
brew tap ArmMbed/homebrew-formulae brew install arm-none-eabi-gcc
(安裝好後,測試前記得重啟命令行)
在windows上到這下載:
GNU Toolchain | GNU-RM Downloads – Arm Developer?developer.arm.com
不過,我安裝的時候最新版的( 8-2018-q4-major)在windows下貌似有點問題,我試了試,好像是這樣,建議下7-2017-q4-major試試.
安裝好以後記得要將安裝目錄下的bin文件夾添加到環境變數,
然後不管是mac還是windows都可以在命令行里用以下語句測試(mac下記得重啟命令行):
arm-none-eabi-gcc -v
如果有信息輸出,那就是裝好了.
這是用來下載程序和調試程序的程序
mac下用以下語句安裝:
brew install open-ocd
win下從這下載:
Download OpenOCD for Windows?gnutoolchains.com
然後解壓就行.
mac下:
brew install stlink
windows下:
我沒裝…應該是之前裝keil的時候自動裝的,如果沒裝的話,可以自己到網上找找安裝包.
win下可能得裝MinGW.
打開Clion的設置,在"Build, Execution, Deployment"下有一個"Embedded Development"設置項.
將兩個地址填成你自己的,點擊Test後沒問題就行.
然後就可以創建一個工程試試啦~
用clion創建新工程的時候選擇那個STM32CubeMX ,然後填寫好項目要保存的路徑,點擊Create即可.
工程創建完成後,clion會自動調用stm32cubeMX創建一個STM32F030F4Px的ioc文件,點Open啥啥啥就能打開它
打開後點下圖所示的地方,就能切換晶元
我這裡用我平時常用的晶元Stm32F103RCT6進行演示:
切換完晶元後,進行自己的晶元設置,這裡就是stm32cube的知識了,各位平常用stm32cube的大佬都懂,而且也不是本文的範文,我就不獻醜了.
下面是本例的設置:
在生成代碼前,Project Name要重新填寫一下(因為換晶元的過程,其實是cube新建了一個ioc文件),建議填寫之前的工程名,這樣就可以把之前咱們不想要的那個ioc文件覆蓋掉.
然後"Toolchain/IDE"那裡,選擇SW4STM32.
然後進行代碼生成就好了.
生成完代碼後,回到Clion,Clion會對你的工程進行處理,創建CMake文件啥的,然後讓你選擇Board(開發板)配置.
這個玩意的話,如果大家也跟我一樣沒用過OpenOCD的話,可能也會有點蒙.
我稍微查了查資料,了解了一下,在此大言不慚地說說自己的見解吧,若有不對的,還請大佬們斧正.
簡單來說吶,就是OpenOCD對不同晶元啊,開發板啊,有不同的配置文件(Board Config File),你得選一個跟自己晶元或者說開發板符合的設置文件(我也不知道咋回事,這為啥不是按照晶元選,而是按照開發板選…,前兩天搞platformIO,也是讓按照開發板選…歪果仁咋想的?...2333).
比如我的板子上晶元是stm32f103RCT6,不過我找了半天也沒找到哪個開發板是stm32f103RCT6的...不過倒是找到個stm32f103rb的.
我打開那個配置文件看了一下,
第4行是選了連接方式是stlink.
(這裡之前是stlink-v2-1,但是我一直下載不成功,後來發現我的下載器是stlink-v2版本的,於是我就將-1刪掉了,然後下載就成功了!大家要注意自己的下載器的固件版本呀~)
然後第6行是選擇swd通信模式
第8行是選擇stm32f1x的配置文件
第10行是選擇重啟模式,貌似要將其注釋起來,不注釋起來下載總失敗.
就這麼四行,怎麼看也沒有專門給stm32f103rb設置什麼,那麼我stm32f103rct6用肯定也沒什麼問題啦.
這個東西也可以在下面這個地方設置:
通過點那個畫著三個點的按鈕,就能找到這些cfg文件,進行修改了.
然後編寫一下代碼,下面是本例的代碼,我只寫了這麼兩行,做個閃爍小燈:
搞完以後,點小錘錘進行編譯:
哈哈,編譯成功.
然後將stlink連上板子和電腦後,點擊小三角就能進行程序的下載:
雖然出現的提示信息是紅色的,但是只要出現Programming Finished 字樣,那就是下載成功了.
然後點擊小蟲蟲debug也是可以的:
看,斷點也是可以斷下來的.
可以考慮2017-q4版本的.
3. Board Config file那裡如果沒有自己的晶元的話...確實挺糾結的,可以像我一樣,找個差不多的,打開看看裡面寫了些啥.
4. 使用的Board Config file文件里記得確認一下stlink的版本號,然後最後reset_config …那裡注釋一下.
reset_config …
6. emmmm,想起來再說吧.
推薦閱讀: