CLion+openocd+stm32cubemx和stlink配置嵌入式开发环境
起因
用CLion当然是因为Keil太难用啦(。・∀・)ノ
安装软件
你需要安装以下软件
- clion
- stm32cubemx
- openocd
- arm-none-eabi-gcc(需要配置环境变量)
- mingw(我也不确定需不需要这个,装一个吧)
创建项目
创建Clion项目
以stm32f103zet6作为例子创建一个闪烁led的项目
选择这个来创建STM32项目,设置好路径后等待加载
点击这里的蓝色字来打开stm32cubemx完成进一步配置
使用stm32cubemx生成代码
点击这里切换你的芯片
切换标签后按照需要配置GPIO
下面是很关键的一步,配置debug
如果你使用SW连接到开发板,必须按照以下方式配置,否则无法下载程序
到达下一步修改项目设置
在另一个菜单中更改这里的设置
完成之后点击生成代码,选择yes覆盖原项目
openocd开发板配置
这部分其实我也不是很懂如何操作。。。。但是我的配置能用。。。
选择一个开发板预设并复制到项目中,我们将在这个预设的基础上进行修改
打开复制的开发板配置文件,进行以下修改
1 | # STM320518-EVAL: This is an STM32F0 eval board with a single STM32F051R8T6 |
在main的循环内加入我们的代码,在两条注释中间的代码如果重新使用stm32cubemx生成项目将会保留
1 | /* USER CODE BEGIN WHILE */ |
链接stlink和开发板
亲测按照以下方式链接可以避免各种问题,接口示意图请自行百度
1 | TVCC(1) --- STM32 3.3V ; 必须连接 ST-LINK根据此调整输出电平 |
这样的连线出问题的概率好像小一些(大概吧)
运行项目
使用stlink的sw模式连接到开发板,在clion中直接点击运行即可下载并运行项目
然后你会得到一个无情的错误
目前我不知道这个问题的解决方案,据我观察下面的方法可能有效
- 复位
- 先使用串口下载程序
- 上电复位后过一段时间再尝试连接
- 按照上面的方式连接开发板
其实这个问题我发现是有几率出现的,一般来说上电复位之后过一小段时间总是能用的
使用串口下载一遍程序就可以正常使用stlink下载了
如果更改了项目源代码使用同样的方式即可快速下载并运行项目
调试项目
这个时候如果你直接按下了debug,你会得到这个错误
1 | Truncated register 16 in remote 'g' packet |
这时候你需要修改工具链配置
- 打开工具链设置,将默认的mingw复制一份
- 将debugger改为arm-none-eabi-gcc的gdb
- 将复制后的工具链配置移到顶部
完成之后应该是这样的(我的路径可能和你的不同)
然后就可以愉快的debug了
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 RainChan的小博客!
评论