1 开发工具平台搭建细节
首先知乎参考[稚晖]
1.1 软件环境
- Windows 10
- STM32CubeMX
- Clion-2019
- MinGW
- OpenOCD
- arm-none-eabi-gcc
1.2 CLion配置
- 1 MinGW
- Clion需要使用MinGW环境来配置工具链,安装方法如下:
首先去MinGW主页下载最新版本的MinGW: Minimalist GNU for Windows,这是MinGW的安装器:重启电脑,然后在命令窗口中输入下面的命令验证安装是否成功:
gcc -v - 2 arm-none-eabi-gcc
- Windows到这里下载:developer.arm.com/open-source… ,选择ZIP压缩包形式的:
- 然后重启使得环境变量生效之后可以在命令行里用以下语句测试:
arm-none-eabi-gcc -v
如果有信息输出,那就是装好了。 - 3 环境变量配置
- 4 工具链配置
- 5 Printf输出打印配置
- 6 OpenOCD及STM32CubeMX配置
- OpenOCD是用于对STM32进行下载仿真的工具,是一个开源软件包,Windows版本下从这里下载,在CLion中配置OpenOCDD及STM32CubeMX的方法
1.3 串口打印乱码解决
- 把打印所在函数配置成GBK编码
- 串口打印测试正常
2 在Clion中创建STM32工程
- 默认选中的芯片型号是
STM32F030F4Px,我们可以在CubeMX中重新选择自己需要的芯片,一切操作都和使用Keil开发没有区别。 - 设置中项目名称一定要和在Clion中建立的一致,这样生成的工程文件才会覆盖Clion中的文件,否则会另外生成一个文件夹,Clion就无法读取了
- 时钟配置
- 下载配置
- 串口配置
- 生成的IDE类型选择是SW4STM32。
- 第一次设置完回到Clion会弹出一个板卡选择窗口:
- 编译工程
3 下载调试
- 安装包修改解决串口打印问题
- 在工程根目录下新建一个文件夹
config,在里面新建一个配置文件stlink.cfg - 拷贝retarget.h到inc
- 拷贝retarget.c和syscalls.c文件内容到src
- 设置打印串口初始化
- 无法正常读取浮点数,这里修改CMakeList.txt,加入下述编译选项
set(COMMON_FLAGS "-specs=nosys.specs -specs=nano.specs -u _printf_float -u _scanf_float")
- OCD调试配置
stlink.cfg
#choose st-link/j-link/dap-link etc.
#adapter driver cmsis-dap
#transport select swd
source [find interface/stlink.cfg]
transport select hla_swd
source [find target/stm32f1x.cfg]
# download speed = 10MHz
adapter speed 10000
- 串口打印测试异常
- GBK
- GBK2312
- 必须保证下载正常,否则打印乱码