电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
文章
用clion和stm32cube开发stm32
分 享
扫描二维码分享
用clion和stm32cube开发stm32
STM32
hal
嵌入式
keysking
关注
发布时间: 2020-07-29
丨
阅读: 688
## 起因 因为keil的难用...以前开发stm32,我都是使用stm32cube生成了项目文件之后,用clion编辑,然后用keil编译下载加Debug.说实话,整体感觉还不错,但总感觉怪怪的. 也曾尝试过SW4STM32和TrueStudio等,但是用eclipse改的软件,总是喜欢不起来. <!--more--> 安装了最新的clion 2019之后,突然发现新建工程时竟然有stm32cubeMX的选项!!! 哇噻噻!!!(狂喜.jpg) ![](https://ws1.sinaimg.cn/large/006tNc79gy1g2e21esgymj31760qs3z3.jpg) 赶紧去找Clion的博客上去翻找,然后发现了这么一篇博文: > [CLion 2019.1 EAP: CLion for Embedded Development, Part III](https://blog.jetbrains.com/clion/2019/02/clion-2019-1-eap-clion-for-embedded-development-part-iii/) 里面简略的记录了Clion 2019.1更新后新添加的Embedded功能的使用介绍. 这么好的东西,立马动手! 于是就有了本文. 注意:本文适用于使用过clion和stm32cubeMX的读者. 建议将本文阅读一遍后,再照着开始搞,尤其是后面的**重点注意!!!**部分要先看一下. ## 安装环境 ### clion 当然,最新版的clion,你得安装一个~ ### Stm32cubeMX 这么好用的东西,必须得搞一个啊,怎么装我就不介绍了. ### arm-none-eabi-gcc 这货是用来编译stm32程序的交叉编译工具链,在mac上的安装方式是: ```shell brew tap ArmMbed/homebrew-formulae brew install arm-none-eabi-gcc ``` (安装好后,测试前记得重启命令行) 在windows上到这下载:<https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads> ![](http://tuchuang.keysking.com/20190424220743.png) 不过,我安装的时候最新版的( 8-2018-q4-major)在windows下貌似有点问题,我试了试,好像是这样,建议下7-2017-q4-major试试. 安装好以后记得要将安装目录下的bin文件夹添加到环境变量, 然后不管是mac还是windows都可以在命令行里用以下语句测试(mac下记得重启命令行): ```shell arm-none-eabi-gcc -v ``` 如果有信息输出,那就是装好了. ### Openocd 这是用来下载程序和调试程序的程序 mac下用以下语句安装: > brew install open-ocd win下从这下载:<http://gnutoolchains.com/arm-eabi/openocd/> 然后解压就行. ### Stlink mac下: > brew install stlink windows下: 我没装…应该是之前装keil的时候自动装的,如果没装的话,可以自己到网上找找安装包. ### MinGW win下可能得装MinGW. ### 配置Clion 打开Clion的设置,在"Build, Execution, Deployment"下有一个"Embedded Development"设置项. 将两个地址填成你自己的,点击Test后没问题就行. ![](http://tuchuang.keysking.com/20190424222821.png) ### 创建Demo工程吧~ 然后就可以创建一个工程试试啦~ 用clion创建新工程的时候选择那个STM32CubeMX ,然后填写好项目要保存的路径,点击Create即可. ![](http://tuchuang.keysking.com/20190424231823.png) 工程创建完成后,clion会自动调用stm32cubeMX创建一个STM32F030F4Px的ioc文件,点Open啥啥啥就能打开它 ![](http://tuchuang.keysking.com/20190424232128.png) 打开后点下图所示的地方,就能切换芯片 ![](http://tuchuang.keysking.com/20190424232238.png) 我这里用我平时常用的芯片Stm32F103RCT6进行演示: ![](http://tuchuang.keysking.com/20190424232345.png) 切换完芯片后,进行自己的芯片设置,这里就是stm32cube的知识了,各位平常用stm32cube的大佬都懂,而且也不是本文的范文,我就不献丑了. 下面是本例的设置: ![](http://tuchuang.keysking.com/20190424235340.png) 在生成代码前,Project Name要重新填写一下(因为换芯片的过程,其实是cube新建了一个ioc文件),建议填写之前的工程名,这样就可以把之前咱们不想要的那个ioc文件覆盖掉. 然后"Toolchain/IDE"那里,选择SW4STM32. ![](http://tuchuang.keysking.com/20190424232704.png) 然后进行代码生成就好了. ![](http://tuchuang.keysking.com/20190425103359.png) 生成完代码后,回到Clion,Clion会对你的工程进行处理,创建CMake文件啥的,然后让你选择Board(开发板)配置. ![](http://tuchuang.keysking.com/20190424233319.png) 这个玩意的话,如果大家也跟我一样没用过OpenOCD的话,可能也会有点蒙. 我稍微查了查资料,了解了一下,在此大言不惭地说说自己的见解吧,若有不对的,还请大佬们斧正. 简单来说呐,就是OpenOCD对不同芯片啊,开发板啊,有不同的配置文件(Board Config File),你得选一个跟自己芯片或者说开发板符合的设置文件(我也不知道咋回事,这为啥不是按照芯片选,而是按照开发板选…,前两天搞platformIO,也是让按照开发板选…歪果仁咋想的?...2333). 比如我的板子上芯片是stm32f103RCT6,不过我找了半天也没找到哪个开发板是stm32f103RCT6的...不过倒是找到个stm32f103rb的. ![](http://tuchuang.keysking.com/20190424233942.png) 我打开那个配置文件看了一下, ![](http://tuchuang.keysking.com/20190424234205.png) 第4行是选了连接方式是stlink. (这里之前是stlink-v2-1,但是我一直下载不成功,后来发现我的下载器是stlink-v2版本的,于是我就将-1删掉了,然后下载就成功了!大家要注意自己的下载器的固件版本呀~) 然后第6行是选择swd通信模式 第8行是选择stm32f1x的配置文件 第10行是选择重启模式,貌似**要将其注释起来**,不注释起来下载总失败. 就这么四行,怎么看也没有专门给stm32f103rb设置什么,那么我stm32f103rct6用肯定也没什么问题啦. 这个东西也可以在下面这个地方设置: ![](http://tuchuang.keysking.com/20190424235624.png) ![](http://tuchuang.keysking.com/20190424235712.png) 通过点那个画着三个点的按钮,就能找到这些cfg文件,进行修改了. 然后编写一下代码,下面是本例的代码,我只写了这么两行,做个闪烁小灯: ![](http://tuchuang.keysking.com/20190425093139.png) 搞完以后,点小锤锤进行编译: ![](http://tuchuang.keysking.com/20190424235858.png) 哈哈,编译成功. 然后将stlink连上板子和电脑后,点击小三角就能进行程序的下载: ![](http://tuchuang.keysking.com/image-20190425093402240.png) 虽然出现的提示信息是红色的,但是只要出现*Programming Finished* 字样,那就是**下载成功**了. ![](http://tuchuang.keysking.com/title.jpg) 然后点击小虫虫debug也是可以的: ![](http://tuchuang.keysking.com/20190425093459.png) 看,断点也是可以断下来的. ## 重点注意!!! 1. Clion必须是2019.1后的版本 2. Windows下的8-2018-q4-major版本的arm-none-eabi-gcc貌似有点问题,会导致编译不通过.详见: [objcopy.exe: 64-bit address 0x4b4fa300000000 out of range for Intel Hex file](https://bugs.launchpad.net/gcc-arm-embedded/+bug/1810274) 可以考虑2017-q4版本的. 3. Board Config file那里如果没有自己的芯片的话...确实挺纠结的,可以像我一样,找个差不多的,打开看看里面写了些啥. 4. 使用的Board Config file文件里记得确认一下stlink的版本号,然后最后`reset_config …`那里注释一下. 5. Mac下想要Debug的话,需要把默认的LLDB换成GDB. ![](http://tuchuang.keysking.com/20190425102250.png) 6. emmmm,想起来再说吧.
原创作品,未经权利人授权禁止转载。详情见
转载须知
。
举报文章
点赞
(
0
)
keysking
关注
评论
(0)
登录后可评论,请
登录
或
注册
相关文章推荐
MK-米客方德推出工业级存储卡
Beetle ESP32 C3 蓝牙数据收发
Beetle ESP32 C3 wifi联网获取实时天气信息
开箱测评Beetle ESP32-C3 (RISC-V芯片)模块
正点原子数控电源DP100测评
DP100试用评测-----开箱+初体验
Beetle ESP32 C3环境搭建
【花雕体验】16 使用Beetle ESP32 C3控制8X32位WS2812硬屏之二
X
你的打赏是对原创作者最大的认可
请选择打赏IC币的数量,一经提交无法退回 !
100IC币
500IC币
1000IC币
自定义
IC币
确定
X
提交成功 ! 谢谢您的支持
返回
我要举报该内容理由
×
广告及垃圾信息
抄袭或未经授权
其它举报理由
请输入您举报的理由(50字以内)
取消
提交