CLion入门(配合CubeMX食用)
这篇文章将实现用CLion+STM32CubeMX+HAL库简单点一个灯,如果想了解更多的CLion小技巧,请见请见【软件入门】CLion小技巧(持续更新)_芜湖_的博客-CSDN博客
文章目录
1.前言
在正点原子和学校教学中都是教我们使用Keil进行代码编写,但是估计用过Keil的用户都会觉得这个软件的界面实在是太老了,看上去实在不是特别的舒服。之前学python接触了PyCharm这款编译器,发现JetBrains家编译器很全,也包括C的编译器CLion。搜一下发现还真有大佬将CLion配置用于STM32开发,因此就学着配了一下。
对了,假如你和笔者一样是学生,可以通过学信网的验证报告申请免费的JetBrains全家桶。笔者的CLion和PyCharm就是白嫖来的
关于CLion的配置,可以参考稚晖君大佬的文章,笔者就是跟着文章配的,第一次配的有问题,不过第二次重新配就没啥毛病了。如果大家在配的过程中发生了某些不知名的问题,删了重新配一下试试就行。链接:
配置CLion用于STM32开发【优雅の嵌入式开发】 - 知乎 (zhihu.com)
大家在配环境的时候最好把下载的东西放到一个大文件夹里,这样方便找,如下图所示:
如果实在自己配不好,留言把压缩包发给你也行。
关于STM32CubeMX的使用可以参照笔者之前的博客:
【软件入门】STM32CubeMX快速入门_芜湖_的博客-CSDN博客_stm32cubemx
2.点灯
2.1.新建CLion工程
打开CLion,新建一个项目:
选择STM32CubeMX,在合适的位置创建工程test:
注意要记住创建的位置和工程名,位置是E:\programme\STM32\2022.07\07.13\t,工程名是test。点击创建:
默认配置的是STM32F030F4Px,但是没关系,我们还可以自己改。点击蓝色字:
2.2.CubeMX配置
2.2.1.芯片
首先更换我们使用的芯片。点击左上角STM32F030F4Px那里:
进入选芯片的界面,我们使用的硬件平台是正点原子mini板,选择STM32F103RCT6:
接下来就是常规的CubeMX配置了。左侧可以更换两种显示方式,一种是按类别,一种是按A-Z显示,笔者选择的是A-Z:
2.2.2.SYS
在SYS中要选择Debug,如果不选的话则只可以烧录一次。或者严谨地说,也可以烧录,但是比较麻烦,为了少点麻烦最好选上。笔者使用的是ST-Link,选择如下:
在SDIO中选择Disable即可:
ST-Link虽然有两大排线,但是其实只用其中4根即可,一个VCC,一个GND,另外两个如图中所示:SWCLK和SWDIO。
2.2.3.RCC
HSE选择Crystal/Ceramic Resonnatorm,使用外部晶振:
然后点击上方的Clock Configuration,进行如下时钟源配置:
2.2.4.LED
以PA8为例(LED0),点击PA8,选择GPIO_Output:
点击左侧GPIO,然后点击PA8的这一行表格:
在下方就可以进行配置了。进行如下配置:
第一行是IO口输出高电平,这是为了让LED灭,具体原因查看mini板原理图即可;
第二行是模式,设置为推挽输出;
第三行是选择上拉/下拉,这里选上拉,原因同样查看原理图;
第四行是速度,在标准库里是具体到多少MHZ,如50MHZ、10MHZ,而在HAL库中是LOW、MEDIUM、HIGH三种,这里选低就可以。
还可以取个名字,如LED0:
LED1配置同理。配置好后如下所示:
此时左边会有警告,这些都可以暂时不管:
2.2.5.生成工程
点击Project Manager进行如下配置:
第一行是工程名,要和之前我们在创建CLion时配置的一样,这里是test;
第二行是地址,地址也必须和之前配置的一样;
第五行是IDE选择和版本号选择,我们选择SW4STM32这一选项。
读者可以结合刚刚CLion配置的界面对照一下进行理解:
然后在左侧点击Code Generater,笔者是这样配置的:
第一个框中是二选一(第一行不能选):
第一行是将HAL库的所有.C和.H都复制到所建工程中,这样体积大,但不需要后续再加。这里禁止选择;
第二行是只复制所需要的.C和.H,这样体积小,但后续需要再加;
第三行是不复制文件,直接从软件包存放位置导入.C和.H,这样体积更小,但是复制到别的电脑上的话可能会有麻烦。
第二个框中是多选:
第一行是每个外设生成一对.c、.h文件作为外设初始化;
第二行是重新生成时备份以前生成的文件;
第三行是重新生成时保留用户代码;
第四行是当没有重新生成时,删除以前生成的文件。
读者可以自己决定。
配置完后即可在右上角点击生成代码:
他会提示警告,说这个工程已经存在了:
直接Yes就行,我们就是需要覆盖原先自动生成的文件。
然后不需要打开,点击Close即可,因为CLion已经打开好了:
2.3.在CLion中添加相关代码点灯
回到CLion,会让你选择配置文件,这里先不选,一会再配,跳过即可:
点击Core-Src,打开main.c:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6pIxaaZW-1657726742399)(…/…/Typora图像保存/image-20220713231519734.png)]
在相应的位置添加点灯代码:
/* USER CODE BEGIN WHILE */
while (1)
{
HAL_GPIO_WritePin(LED0_GPIO_Port, LED0_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_RESET);
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
2.4.配置并烧录
在右上角选择编辑配置:
点击“+”,选择OpenOCD:
笔者使用的是ST-Link,进行如下配置:
其中:
名称填写自己能看懂的即可,无硬性要求;
可执行文件与目标相同;
GDB无需修改;
面板配置文件需要自己创建,在工程路径下创建一个文本文档,名称无所谓,最好英文且能看懂,把下面几行复制进去:
# choose st-link/j-link/dap-link etc.
#adapter driver cmsis-dap
#transport select swd
source [find interface/stlink.cfg]
transport select hla_swd
source [find target/stm32f1x.cfg]
# download speed = 10MHz
adapter speed 10000
保存后将后缀改为.cfg文件,然后填入到面板配置文件即可。
配置好后如下所示:
点击小锤子进行编译:
可以看到,也生成了.obj文件,我们也可以通过串口进行烧录。为了方便我们还是直接点击小三角使用ST-Link进行烧录:
出现这部分红色文字说明烧录完成,右下角也显示已下载固件。点灯成功: