配置Clion+OpenOCD+Stm32CubeMX进行优雅的嵌入式开发

传统的keil的图形化界面以及各种复杂的操作对我这个想入门的新手很不友好,所以经过一波探索,决定用自己的IDE,即Jetbrain家的Clion进行配置开发,本文详细介绍我自己配置的过程。

顺便开一个专栏记录我从大二下才开始的单片机学习经过。


1. 软件环境:

  • Windows 11
  • STM32CubeMX
  • Clion-2022
  • MinGW
  • OpenOCD
  • arm-none-eabi-gcc

2. 硬件环境:

  •  stm32f103c6t6A
  •  st-link v2

3. 软件下载

        STM32CubeMX下载地址
STM32CubeMX - STM32Cube initialization code generator - STMicroelectronicshttps://www.st.com/en/development-tools/stm32cubemx.html        注意,本人下载的是老版本6.5.0的,不建议使用最新版本。

        OpenOCD下载地址
Download OpenOCD for Windows (gnutoolchains.com)https://gnutoolchains.com/arm-eabi/openocd/        在Clion中配置OpenOCD的方法:

    

        MinGW:经验证,可以直接使用Clion捆绑的,不用另外下载

        下载地址:Download File List - MinGW - Minimalist GNU for Windows - OSDNhttps://osdn.net/projects/mingw/releases/        arm-none-eabi-gcc:
Downloads | GNU Arm Embedded Toolchain Downloads – Arm Developerhttps://developer.arm.com/downloads/-/gnu-rm        此处最好下载zip文件解压后使用,将解压后文件的bin目录添加到环境变量中去

 4. Clion中的配置:

        

5. 创建项目:

       

 创建完成后,会生成一个ioc文件,并且弹出一个OpenOCD的配置面板选择,此处我们选择跳过即可。

 然后点击ioc文件,选择在STM32CubeMX中打开

 此时的板子默认的是STM32F0304Px,我们点击左上方Home右边的那个芯片名称:

 在图上的指针处输入你自己板子的对应型号,我这里选择的是STM32f103c6t6A

(不知道为什么我这里图形化界面的渲染总是会出现错误,但是不影响使用)

选择后在右下角给出两个板子型号,此处双击你的型号即可

之后会自动创建一个工程,此处我们对工程进行配置。

先点击座变一栏的System Core,选择SYS选项

Debug选择Serial Wire选项

 然后点击Project Manager,配置你的项目名称(要和Clion里创建的一样),注意一下你的项目目录:是项目文件的上一级。然后Application Structure选择Basic,ToolChain/IDE选择SW4STM32即可。配置完成后直接点击右上方的Generate Code,覆盖掉之前的项目文件。

覆盖完后会显示如下弹窗,我们选择Close后关闭STM32CubeMX窗口即可。

 回到Clion后系统会自动重新配置,并且要求我们选择面板配置文件,此时我们可以看到板子型号已经发生改变了。面板配置文件中对不同型号的板子有不同的配置文件,我们选择对应型号的,然后复制到项目并且使用即可。我这里选择了我板子型号的配置文件,有可能对你的板子没有对应的,那就随便选一个然后自己写配置文件的内容

初始的配置文件如下:

 因为我使用stlink的烧录器,所以更改配置文件如下:

# STM32F103C8 "Blue Pill"

# NOTE:
# There is a fair bit of confusion about whether the "Blue Pill" has 128kB or 64kB flash size.
# The most likely cause is that there exist a -C8 and a -CB variant of the STM32F103, where
# the C8 has 64kB, the CB has 128kB as per specification. "Blue Pill" boards are manufactured
# by a lot of different vendors, some may actually use the CB variant but from a cursory look
# it very hard to tell them apart ("C8" and "CB" look very similar). Nevertheless, people have
# tried using the full 128kB of flash on the C8 and found it to be working. Hence this board file
# overrides the internal size detection. Be aware though that you may be using you particular
# board outside of its specification. If in doubt, comment the following line.
set FLASH_SIZE 0x20000
source [find interface/stlink.cfg]
transport select hla_swd
source [find target/stm32f1x.cfg]
adapter speed 10000

然后我们点击右上方的构建按钮进行构建,可以看到已经构建成功了,接下来写入一个点亮LED灯的例程进行测试。

 打开Src文件目录下的main.c文件,写入如下代码(简略代码):

      *(unsigned int *)0x40021018 |=(1<<4);
      *(unsigned int *)0x40011004 &=~(1111<<(4*5));
      *(unsigned int *)0x40011004 |=(1<<(4*5));
      *(unsigned int *)0x4001100C &=~(1<<13);

点击构建

 

构建完成后点击运行按钮,进行烧录,此时请确保你的stlink链接无误。此时我这里的烧录成功。

 板子也成功亮灯

 那么就配置好了,此时就可以享受Clion的美观UI和丝滑补全了。

重载printf函数的部分见下面第一个链接有写:

同时本文也借鉴了下列链接:

配置CLion用于STM32开发【优雅の嵌入式开发】 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/145801160(5条消息) 最小系统板 STM32入门,点亮 LED 灯(STM32F103C6T6)_stm32蓝色led灯_HackShendi的博客-CSDN博客https://blog.csdn.net/qq_41806966/article/details/126894938?spm=1001.2014.3001.5506

(5条消息) MacOS之STM32CubeMX和System Workbench系列问题解决_SimonLiu009的博客-CSDN博客https://blog.csdn.net/toopoo/article/details/79680323

  • 7
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jellyfish Knight

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值