STM32野火keil 工程用CLion创建模板

本文详细描述了如何将Keil工程转换为Clion项目,包括使用STM32CubeMX配置、删除自定义库、调整CMakeLists和添加额外文件,以便在Clion中编译和下载STM32应用。

这两天尝试用Clion修改原来 野火霸道V2开发板 的Keil例程工程,碰到好多问题,总算跑通了,可以正常编译下载,串口打印。这些碰到的问题都记录在之前的文章里。

最后我得到了这个工程,将它命名为F103_Template(红色部分是下载到开发板成功时的控制台日志):

 我这个跑通的CLion工程是在原来的 USART1接发 Keil工程的基础上转换过来的。

日后继续看B站视频,但要用Clion学习其他没有学完的例程。所以配套的Keil例程都要转换成CLion工程。这里整理一下怎样将某个Keil工程快速转换成CLion工程。这个过程会用到上面已经跑通了的CLion工程。

注:之前已经写了文章怎样把Keil工程转化成CLion工程,这篇文章的目的是为了尽量简化将Keil工程转化为CLion工程的繁琐流程(尽管还是不够精简,多希望有个批处理文件可以一键修改😂)。

下面以

一、用CLion创建工程

1.新建并链接STM32CubeMX

File → New → Project → STM32CubeMX

填入自己的项目名称,请避免用中文。

等待STM32CubeMX启动:

选择适合自己开发板的配置文件(我选择的是自制的,相关问题移步参考文章1):

点击打开STM32CubeMX

选择对应的芯片型号,开始创建Project:

Project Manager里如下设置:

最后点击GENERATE CODE生成项目代码,选择Yes:

至此可以关闭CubeMX软件。

GENERATE CODE之前的文件夹:

GENERATE CODE之后的文件夹:

2.用修改文件的方式生成工程

要生成工程其实也可以不用这种方式,可以直接拷贝之前整理好的模板工程F103_Template,修改 project 相关文件(貌似是.cproject和.project这两个文件)内的信息,使之成为新的工程,但涉及到的文件修改比较繁杂,等我研究试好了再总结一下看哪一种更便捷。

二、拷贝整理好的目录模板并添加新文件

将生成的文件夹下的Core文件夹和Drivers文件夹删除,因为要用到的标准库文件,我们自己已经整理好了一份,把这一份删除。

F103_Template文件夹里有整理好的文件目录,就是Libraries文件夹和User文件夹,可以拿来直接拷贝给新工程用。

然后添加Keil工程中的其它额外的.h和.c文件进来。放到User的Inc和Src里面。不过记得要把一些头文件包含的语句修改一下,因为我们全都放在Inc和Src里了,只保留文件名即可。例如:

例如,我转换下列Keil工程:

把文件搬到CLion工程里:

三、修改CMakeList

用CLion打开工程,找到CMakeLists.txt文件,找到下列两行

修改为:

其实就是目录修改一下,因为我们整理了目录,和自动生成的目录不一样了。

include_directories(Libraries/CMSIS/inc Libraries/FWlib/inc User/Inc)


file(GLOB_RECURSE SOURCES "libraries/*.*" "User/*.*")

然后控制台刷新CMake:

如果不改这这两处,则会出现下列提示:

CMake Error: CMake can not determine linker language for target: Demo.elf


四、编译/下载工程

点击build:

连接开发板到电脑,开发板上电,CLion中点击run(因为我的CLion已经配置好了OCD):

下载成功!!!

验证程序效果:

/*********************************************************************************************/
【*】程序简介

-工程名称:DMA 存储器到外设模式实验
-实验平台: 野火STM32 霸道 开发板 

【 !】功能简介:
利用DMA向串口发送大量的数据,同时让CPU控制LED的状态


【 !】实验操作:
把编译好的程序下载到开发板。程序运行后在串口调试助手可接收到大量的数据,同时开发板上RGB彩色灯不断闪烁。

开发板LED灯正常闪烁。

五、补充说明

Libraries/CMSIS/inc/stm32f10x.h文件里的两处宏定义很重要,因为我整理好的目录里这个文件是修改好了的,所以没特别提出来。

#define STM32F10X_HD
#define USE_STDPERIPH_DRIVER

参考文章:

1.【教程】手把手教你用Clion进行STM32开发【如何优雅の进行嵌入式开发】 - 知乎 (zhihu.com)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值