STM32单片机开发Clion环境配置(windows\linux)
STM32单片机开发Clion环境配置
最近开始接触STM32。那个Keil编辑器实在不行,代码提示几乎没有。偶尔在网上看到能用Clion开发STM32,并且三大平台都可以。于是,折腾又开始了。
-
一、工具准备
-
GNU Arm Embedded toolchain
-
linux:
- sudo apt install gdb-arm-none-eabi
- sudo apt install gcc-arm-none-eabi
-
gcc编译工具(根据你的系统选择32位还是64位)
- windows下: mingw
- linux下一般默认安装
-
OpenOCD
- windows下的地址
- linux下直接apt install即可
-
STM32CubeMX
- 直接去ST官网下载最新版即可。下载完成直接就有三个系统下的版本。
- linux:
- 需要先安装Java环境:sudo apt install default-jre
- 运行STM32CubeMX:
- 可能需要加上运行权限:sudo chmod +x SetupSTM32CubeMX-6.1.1.linux
- ./SetupSTM32CubeMX-6.1.1.linux
-
Clion直接去官网下载,目前最新版2020.1
- 学生和老师用教育网邮箱即可免费使用。好像有期限:一年。
- 他的全家桶都可以用。我反正用得很爽。
-
- zadig:这个东西也要备一个。如果JLink烧写出现问题可能需要。用这个工具你一定要知道你在干什么。所以,我推荐用stlink.
-
stLink
- windows下OpenOCD包中有这个驱动
- Linux下需要编译安装才比较保险。
-
-
二、安装注意事项
- 1、基本按照上面的步骤安装。尽量全部下载完毕再安装。
- 2、在Windows下能用管理员权限就用管理员权限。
- 3、OpenOCD只用解压即可。但要注意在Windows系统变量里增加路径。
- 4、MinGW不要用线上安装方式,慢到你怀疑人生。直接下载安装包即可。
- 5、B站上有详细的教程。这一类的视频还不多见。
- 6、这些工具很多是GNU下的,所以如果可能的话,还是在Linux下配置吧。我在Deepin15.11下配置成功。但当时只想着怎么把他搞定,没想着写笔记,现在有些步骤都忘记了。这也是以前学习的毛病,以为自己能记住,下次再用进,一切重新来过。这浪费了大量的时间。现在学乖了,只要有时间,我就把做过的一些事情记下来。这样,下次再搞不用再浪费时间。发到网上,也许还能不小心帮到同道中人,也多少算是一点功德吧!
-
三、踩坑记
-
1、Clion不能生成CMakeLists.txt文件。最后升级Clion2020.1版本问题解决。
-
2、写入时出现Error: error writing to flash at address 0x08000000 at offset 0x00000000
- https://github.com/platformio/platform-ststm32/issues/175
- H:\OpenOCD\share\openocd\scripts\board (H代表你的OpenOCD安装所在分区)这里有好多个CFG文件,建议把没有的删去,只留下STM开头的。如果你只是开发STM32的话。
- 百度了N多次,找不到有用的。最后在上面这个地址找到解决办法。把cfg文件中的
set WORKAREASIZE 0x2000
这句话中的0x2000改为0x1000。 - 因为我用的是F030的,所以我选的是stm32f0discovery.cfg这个文件。
-
3、解决了1的问题之后又出现了链接问题,目前还未解决。
-
====================[ Build | untitled1.elf | Debug]=========================== "H:\JetBrains\CLion 2019.3.5\bin\cmake\win\bin\cmake.exe" --build H:\stm32\untitled1\cmake-build-debug --target untitled1.elf -- -j 6 [ 4%] Linking C executable untitled1.elf h:/gnutoo~1/92019-~1/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld.exe: cannot open linker script file H:/stm32/untitled1/: Invalid argument collect2.exe: error: ld returned 1 exit status mingw32-make.exe[3]: *** [CMakeFiles\untitled1.elf.dir\build.make:375: untitled1.elf] Error 1 mingw32-make.exe[2]: *** [CMakeFiles\Makefile2:75: CMakeFiles/untitled1.elf.dir/all] Error 2 mingw32-make.exe[1]: *** [CMakeFiles\Makefile2:82: CMakeFiles/untitled1.elf.dir/rule] Error 2 mingw32-make.exe: *** [Makefile:117: untitled1.elf] Error 2
-
-
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现