基于clion和stm32cubemx实现LED的点亮

Posted 奔赴美好未来

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于clion和stm32cubemx实现LED的点亮相关的知识,希望对你有一定的参考价值。

一、实验内容

安装Clion2021,采用一套新的嵌入式软件开发工具包(替代Keil),完成stm32F103 点亮LED的程序。

实验器材:
stm32f103c8t6芯片、些许杜邦线、USB TO TTL串口、led灯、pc机等;
实验软件:
Clion 2021.3、stm32cubeMX、烧录软件
具体安装过程这里不再过多说明,请参考博客

二、环境配置

1)实验环境

arm-none-eabi-gccMinGWOpenOCD
这些环境的具体下载方式请参考博客;这里我建议直接从他们的网盘中下载,以避免后续在官网上下载时出现很多复杂的问题;
注意:上述环境下载完成后,一定要把他们放在与Clion路径相同的文件夹下!!!
最后,可以在cmd(win+R)命令界面里分别输入以下语句验证是否安装成功:

arm-none-eabi-gcc -v
gcc -v
openocd -v

验证如下:


只要出现上述结果就代表安装完成;

添加环境变量

  • arm-none-eabi-gcc 路径下bin文件夹
  • Openocd路径下bin文件夹
  • MinGW路径下bin文件夹

将上述()添加到系统变量当中去,具体流程为:

此电脑——>属性——>高级系统设置——>环境变量——>系统变量(Path)——>新建——>浏览——>确定

注意:每添加一个后都需要点击确认,之后再重新点进去添加,否则可能会出现添加无效的情况,添加完成后如下图所示:

2)环境配置

安装完上述环境后,就可以在Clion中配置这些环境了;
Ⅰ、建立工程
首先,打开Clion,出现如下页面,点击“New Project”;

接下来,在弹出来的界面里点击“STM32CubeMX”,再在该路径下新建一个文件夹存放该工程,如下图所示;(一定是要存放在STM32CubeMX这个文件夹的路径下哦!!)

之后点击“Create”即可;
Ⅱ、工程配置
在建立好的工程下,首先,进行如下选择:
点击“File”——>“Settings…

①配置Toolchains

选择“Toolchains”,这时候会自动配置为“MinGW”,我们只需要将“Debugger”里的文件修改成:arm-none-eabi-gcc 路径下bin文件夹中的arm-none-eabi-gdb.exe即可;

②配置Embedded Development

同样是在settiings下,选择Embedded Development,将右侧的 OpenOCD Location 文件目录和转换到自己对应下载的位置,最后点击 Test ,如果提示颜色为墨绿色,即代表配置成功;


配置完以上后,点击“OK”即可;
最后,会出现以下页面,点击“Open with STM32CubeMX”就可以在STM32CubeMX中导出工程啦!

三、功能实现

1)在stm32cubeMX中生成工程

进入stm32cubeMX后,系统默认为F030F4Px,因此我们需要将其改成stm32F103c8,点击即可重新选择;

Ⅰ、配置
①SYS

②RCC

③引脚配置
设置 PC13 引脚为 GPIO_Output 来点亮 LED 灯;

再点击左侧GPIO,将该引脚的名字改成LED;

④串口配置

⑤文件配置
这里最好把工程名和存放路径 设置成和Clion中工程一样的形式,并且将打开方式设置成SW4STM32

⑥工程导出
点击右上方“GENERATE CODE”就可以导出工程了,可能会弹出一个页面,选择“Yes”,之后点击close就可以了;

2)工程配置

打开Clion,会弹出如下页面,找到st_nucleo_f103rb.cfg,并点击“use”;
(如若没有的话,可能是在STM32CubeMX中工程存储的方式与之前Clion的不相同,即未被覆盖,这是只需要在刚刚的路径下找到生成的工程,并在Clion中打开即可)

再在右上角选择“Edit Configurations…”;

打开后如下所示,然后在Board config file处点击“”查看文件(st_nucleo_f103rb.cfg)的位置,并记住它的位置;

接下来根据刚刚的路径打开该文件并进行修改:File——>Open… ——> st_nucleo_f103rb.cfg

将第十行的代码前面加上#,将其变成注释行;

#reset_config srst_only

最后,在Core——>Src下找到main.c文件,在main函数中的 while 循环里添加使 PC13 引脚 LED 闪烁的代码:

while (1)
  
    /* USER CODE END WHILE */
    HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET);
    HAL_Delay(500);
    HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET);
    HAL_Delay(500);
    /* USER CODE BEGIN 3 */
  


以上完成后,就可以进行编译了;

3)工程编译导出

点击右上角的绿色小锤子对工程编译,生成了对应的HEX文件,结果如下:

四、结果展示

Ⅰ、电路连接
具体的电路连接方式参考我之前的博客
Ⅱ、代码烧录
打开烧录软件,将串口连接到电脑,进行如下配置后,即可烧录成功;

烧录成功后,将芯片上的BOOT0和BOOT1都置为0,即可看到LED闪烁。

五、总结

与之前点亮LED的实验不同的是,这次试验是在Clion的基础上与STM32CubeMX相结合生成的HEX文件;Clion作为一个功能齐全的开发软件,相比于keil来说,也是更加方便,并且安装配置过程也没有特别麻烦,总之是一次不错的学习体验!

六、参考内容

用Clion自带的嵌入式开发功能和stm32cubeMX开发stm32!!!

以上是关于基于clion和stm32cubemx实现LED的点亮的主要内容,如果未能解决你的问题,请参考以下文章

STM32学习笔记 一基于STM32F103C8T6最小系统板和STM32CubeMX实现LED灯循环闪烁

STM32F103VET6基于STM32CubeMX创建定时器中断控制LED闪烁

STM32CubeMX(01)基于HAL库点亮LED

STM32G070RBT6基于STM32CubeMX创建定时器中断控制LED闪烁

STM32学习笔记 二基于STM32F103C8T6和STM32CubeMX实现UART串口通信数据收发

STM32学习笔记 二基于STM32F103C8T6和STM32CubeMX实现UART串口通信数据收发