Clion下开发STM32

Clion下开发STM32


0 前言

多数人在开发STM32的时候用的都是keil这个老牌IDE,很大一部分原因是因为很多人都是从51单片机过来的,那个时候就用keil去开发,然后换成stm32的时候也就沿用下来了,操作简单,容易上手,而且很方便的进行调试。但是用过intellij IDEA的朋友肯定会被他强大的代码补全,界面风格以及其他多种优点所吸引,能够极大提高开发效率。代码的话大家用的基本上都是ST的标准库,然后自己开发逻辑部分,或者在一些方便的地方直接操作寄存器,直接操作寄存器能提高代码的执行效率,但是很难移植,后来ST开发了一款可以快速demo的平台Cube MX,通过这个软件配合ST的HAL库,可以快速的搭建工程,并能生成多种工程。HAL库更容易进行移植,而且应用起来也更加方便。ST正在加大对HAL库的支持,并渐渐放弃标准库。

1 环境及所需工具

这里我是在Ubuntu16.04下搭建的开发环境,其他环境大家自行实践。

软件环境:

  • Ubuntu 16.04

  • cubeMX 5.2.0

  • Clion-2019.1.2

  • OpenOCD

  • arm-none-eabi-gcc

硬件环境:

  • STM32F103RCT6

  • ST-Link

2 工具说明

2.1 cubeMX

1.首先戳这里下载:cube MX下载,地址为:https://www.st.com/en/development-tools/stm32cubemx.html
2.下载完成后解压,得到如下目录:

image.png

运行SetupSTM32CubeMX-5.2.0.linux就可以开始安装,在这里可能会遇到jdk版本的问题,如果遇到此问题,需要更新一下jdk版本,
3.安装完成后打开cubeMX,界面如下:

image.png

2.2 Clion

1.戳这里下载clion 下载, 地址为:http://www.jetbrains.com/clion/
2.下载完成后解压,找到bin目录下的clion.sh运行就ok,这里需要激活码,去某宝5块钱买一个就好。
3.File->Settings->Plugins,搜索stm32,可见如图插件,安装并重启clion

image.png

2.3 openOCD

1.下载源码,编译并安装

$ git clone git://git.code.sf.net/p/openocd/code openocd
$ cd openocd
$ sudo ./bootstrap
$ sudo ./configure
$ sudo make
$ sudo make install

2.测试是否安装成功

$ openocd --version

3.这里可能会遇到依赖库没有安装的情况,需要安装以下依赖库

$ sudo apt-get install build-essential pkg-config autoconf automake libtool libusb-dev libusb-1.0-0-dev libhidapi-dev
$ sudo apt-get install libtool libsysfs-dev

2.4 arm-none-eabi-gcc

这里建议大家下载工具包,然后解压并设置环境变量,而不是用apt去安装。下载地址:
https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads

3 实例(整个流程)

3.1 cubeMX创建工程

1..这里以亮灯为例来体验一下cubeMX,File->New Project…,这里会自动下载一些数据包。下载完成后在搜索框输入我想要的单片机并双击选中

image.png

2.这里看到单片机界面,直接找到LED对应的GPIO单击更改成自己想要的模式,这里我将PC6更改为GPIO_Output

image.png

3.在左侧栏中,找到SYS,在右侧的Debug选项中选择Debug方式,这里我用sw,所以选择Trace Asynchronous Sw,

image.png

4.直接点击Tools,按照图中配置,需要注意的地方是Toolchain/IDE这一栏一定要选择SW4STM32,Firmware Package Name and Version用默认库就可以。

image.png

5.点击右上角的GENERATE CODE

3.2 Clion导入工程

1.File->Import Project…,找到刚才生成的目录确定

image.png

2.导入文件默认,点击OK

image.png

3.Tool->Update CMake project with STM32CubeMX project

image.png

4.编译

image.png

5.arm-none-eabi-gcc没有错误的话,此时应该便宜成功了

image.png

3.3下载及调试

1.File->Settings->Build,Execution,Deployment->OpenOCD Support,设置OpenOCD Home

image.png

2.设置板文件,

image.png
image.png

3.其实这里并没有合适的配置文件,需要自己写一个,将stlink.cfg和stm32f1x.cfg混合一下,就像包含头文件一样,代码如下:

source [find interface/stlink.cfg]
source [find target/stm32f1x.cfg]

4.将上述代码保存为stm32f103.cfg,在上面的设置里选中这个配置文件,并点击运行按钮,会提示下载成功

image.png
image.png

5.调试,先设置一个断点如图,点击debug按钮,代码会停留在断点上。

image.png

6.查看变量,点加号,输入变量名

image.png

7.其他功能读者自己去发现吧,很强大


欢迎大家留言点赞,欢迎大家点击关注,大家的赞美是我创作的最大动力,谢谢!

推荐阅读更多精彩内容