目录
前言:
看这篇文章的前提是你已经搭建好clion+mxcube环境,并且可以成功烧录代码。
这段时间我在自己复刻稚晖君瀚文键盘固件的时候,发现稚晖君用到了一款独特的开发软件clion,于是我在安装了clion,希望通过模仿大佬的编写习惯来起到学以致用的效果。我之前一直使用的是keil5软件利用HAL库开发stm32项目。
介绍一下我使用的环境:
软件环境:
Windows 11
STM32CubeMX
Clion-2021
MinGW
OpenOCD
arm-none-eabi-gcc
硬件环境:
STM32F103CBT6
stlink下载器
发生问题:
在clion中我不会最基础的在main.c文件中调用其他的函数,例如我创建了一个class的文件夹,文件夹下面放了classs.c和classs.h文件(写了一个LED等闪烁程序),在main函数中调用出现报错。
classs.c文件
#include "classs.h" void LED1() { HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_RESET); HAL_Delay(1000); HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_SET); HAL_Delay(1000); }
classs.h文件
#ifndef __CLASSS_H
#define __CLASSS_H
#include "main.h"
void LED1();
#endif
然后main中无法识别
问题解决:
第一步:找到CMakeLists.txt文件
第二步:复制文件夹.h路径
第三步:找到CMakeLists.txt文件中的以下区域
include_directories(Core/Inc Drivers/STM32F1xx_HAL_Driver/Inc Drivers/STM32F1xx_HAL_Driver/Inc/Legacy Drivers/CMSIS/Device/ST/STM32F1xx/Include Drivers/CMSIS/Include)
第四步:添加.h路径即可
include_directories(Classs/Inc Core/Inc Drivers/STM32F1xx_HAL_Driver/Inc Drivers/STM32F1xx_HAL_Driver/Inc/Legacy Drivers/CMSIS/Device/ST/STM32F1xx/Include Drivers/CMSIS/Include)
*注意空格隔开
第五步:找到CMakeLists.txt文件中的以下区域
file(GLOB_RECURSE SOURCES "startup/*.*" "Drivers/*.*" "Core/*.*")
第六步:添加.c路径
file(GLOB_RECURSE SOURCES "startup/*.*" "Drivers/*.*" "Core/*.*" "Classs/*.*")
按照格式"Classs/*.*"即可,Classs是根目录名,程序会自动搜索文件夹下的源文件
第七步:运行即可
成功编译,LED灯可完成闪烁。
总结:
cmake文件是配置编译工具
新的问题:(clion中利用面向对象思维进行编写)
我在查找资料的时候发现大部分有关clion的文章都是搭建环境的文章,很少有使用它来实现一些更加厉害的代码操作的文章,所以接下来我会多发一些clion应用的文章,(稚晖君的代码还没有全部看懂),现在还有一个问题就是如何在clion中利用面向对象思维进行编写stm32代码,我会继续研究,也算是下期文章预告了。