论如何用CLion优雅地开发STM32工程
为什么用CLion
众所周知,STM32CubeIDE是基于开源的Eclipse开发的。Eclipse的名声。。。想必不需要我说太多。实际上,STM32CubeIDE比Eclipse更加难用,Eclipse的自动补全触发按键可以调节,于是乎,魔改配置文件来绕开那个反人类的自动提示快捷键成为了可能;然而,到了CubeIDE这里,却行不通,原因嘛。。。很简单:
什么?你问我为社么不用Keil?答案很简单, 我 是 颜 狗 ,Keil的界面太丑了。并且,CLion继承了JetBrains一贯的风格,自动补全极其流畅,还有很多辅助功能(都是借口)。
如何使用CLion开发STM32工程
需要的前期准备
- 安装JRE8、STM32CubeMX、CMAKE和CLion
- 安装arm-none-eabi-gcc、STLink驱动和OpenOCD
注:OpenOCD是一个开源单片机Debugger, arm-none-eabi-gcc是cortx-arm的交叉编译器 - 想办法激
(Po)活(Jie)CLion
(学生可以用学生邮箱申请白嫖)
配置流程
- 配置ToolChains(Linux用户可以略过此部分)
没有错,Windows用户还得整一个没有用的MinGW环境(不是很懂这个逻辑)
(反正Linux大法好就完了)
然后指定MinGW、CMAKE和arm-none-eabi-gcc的路径。 - 配置Embedded Development
填写OpenOCD和STM32CubeMX的路径 - 配置OpenOCD Support
再填一遍OpenOCD的路径,注意:此处涉及的路径为OpenOCD的根目录而非可执行文件路径
(又一个不是很理解意义何在的设定) - 配置Inspections
虽然不做这一步也能正常的编写&编译,但是总是会报一些警告,波浪线看起来很难受,我这种强迫症患者忍不了。我主要动的东西有三个:Clang-Tidy、Typo和Endless Loop。话不多说,上图:
至此我们已经完成了CLion的相关配置。
如何新建一个工程
- 使用STM32CubeMX生成代码(工程类型为SW4STM32)
- 用CLion打开CubeMX生成的项目文件夹
- 愉快的开始Coding
最后,留个蓝(红)色的东西,供各位下载学♂习♂资♂料(毕竟留图不留种,*****)
Download
附:我用的主题为Monokai Pro, 插件也已经放到上面了(颜狗本色)
Clion重定向Printf(用了微雪的代码),写入1024个字符以后才会从串口打印出来,有人遇到过这样的问题吗?
OK,搞定了,字符串末尾加一个\r\n就没这问题了,原因研究中
这种是Buffer的问题,可能因为编译器的关系,Printf的字符会进Buffer当Buffer刷了之后再通过fputchar送到标准输出流,而再字符串尾加入\r\n可以立即刷新Buffer,你可以试试不加\r\n,Printf之后用fflush手动刷新缓冲区试试看能不能发出去
嗯,可以的,后来看了一下,是CLion特性的问题,下一个新行到达之前不会flush buffer,输出完加一句`fflush(stdout);`可以手动刷新
。’setbuf(stdout, NULL);’禁用输出缓冲就不用手动刷新了。
我单推宋学长!
学长牛逼!
来了来了,这教程也太棒了吧