基于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-gcc
、MinGW
、OpenOCD
这些环境的具体下载方式请参考博客;这里我建议直接从他们的网盘中下载,以避免后续在官网上下载时出现很多复杂的问题;
注意
:上述环境下载完成后,一定要把他们放在与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实现LED的点亮的主要内容,如果未能解决你的问题,请参考以下文章
STM32学习笔记 一基于STM32F103C8T6最小系统板和STM32CubeMX实现LED灯循环闪烁
STM32F103VET6基于STM32CubeMX创建定时器中断控制LED闪烁
STM32G070RBT6基于STM32CubeMX创建定时器中断控制LED闪烁