Clion + Keil5 写stm32

文章介绍了如何将Clion和Keil结合使用来开发STM32项目,通过Clion进行代码编写,利用Keil进行编译和烧录。作者详细阐述了从配置CMakeLists.txt,复制文件到Keil目录,创建Clion项目,解决代码提示问题,到最后成功编译和烧录的全过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

最近在学 stm32,使用 Kei5 写代码十分难受,代码提示差,看源码复杂,甚至括号匹配都没有。就想着 JetBrains 家的东西能不能用,就找的了稚晖君的《配置CLion用于STM32开发【优雅の嵌入式开发】》,配置之后又想用 stm32 的原生库不想用HAL库,因为跟着江协科技学起来方便。折腾一番,发现能编译,能烧录,但 stm32 就是跑不起来。最后想了一个折中的办法,用 Clion 来写代码,用 Keil5 来烧录。


一、现有条件

根据稚晖君的教程会得到以下目录:

在这里插入图片描述

点开 CMakeLists.txt,可以看到下面几行:

在这里插入图片描述

只有这几行配置好,CMake 才能正确打包,Clion 才能提供代码提示等等。
可以点开 Core 文件夹看看里面的东西:

在这里插入图片描述

这样有放置 .h 文件的 Inc 文件夹和放置 .c 文件的 Src 文件夹,这就明白 include_directories 的作用了。


二、Clion 和 Keil 结合

1. Keil 目录

正常的 Keil 目录是这样的:

在这里插入图片描述

2. 加入 Clion 生成文件

直接 Copy 以下文件(不用 Core 和 Drivers 目录)到上面 Keil 目录:

在这里插入图片描述

得到这样一个目录:
在这里插入图片描述

3. 复制文件

仿照 Core 目录写一个 Clion 目录:

在这里插入图片描述
这个目录用于 Clion 写代码的时候使用,接下来将原来 Keil 目录中所有的 .h 和 .c文件复制到 Inc 和 Src 两个文件夹。
这里我用 python 写了两个个小脚本编成了 copy2clion.exe 和 link2clion,前者仅仅是复制,后者用使用了硬链接,在 Clion 中修改文件可以同步到源文件,方便在 Clion 中编辑在 Keil 中编译。.py 和 .exe 都在 Github了,有需要可以直接修改 .py 文件,然后用 auto-py-to-exe(超好用超好用)编译成 exe。
修改 CMakeLists.txt 文件如下:

在这里插入图片描述

添加 User/main.c 文件方便直接编写 main.c 文件。

4. 构建项目

点击 Clion 上方的小锤子构建一下整个项目,点开 main.c 可以看到已经可以有代码提示和点击看源码的功能了:
在这里插入图片描述

点击小锤子如果出现以下错误:

在这里插入图片描述

需要在 stm32f10x.h 添加一行代码,原因报错也说了:

在这里插入图片描述

5. 编译烧录

程序的编译和烧录就要用 Keil 来执行了,所有操作都和之前一样,不过在 Clion 中有新建项目的时候,在 Keil 也要添加一下不然会报错。


最后

希望大家有个良好的 stm32 学习体验。

### 使用Keil MDK在CLion中进行嵌入式开发 尽管CLion是一款强大的跨平台IDE,但在默认情况下并不直接支持Keil MDK项目。为了能够在CLion中使用Keil MDK进行嵌入式开发,通常需要一些额外的设置和工具链集成。 #### 配置CMake以兼容Keil工程 由于CLion依赖于CMake来管理构建过程,因此可以考虑将现有的Keil项目转换为基于CMake的项目结构。这样做的好处是可以继续保留Keil中的配置细节,同时享受CLion提供的现代编辑体验[^1]。 对于ARM Cortex-M系列微控制器而言,推荐的做法是创建一个新的CMakeLists.txt文件,并指定交叉编译器路径以及目标架构: ```cmake set(CMAKE_SYSTEM_NAME Generic) set(CMAKE_SYSTEM_PROCESSOR ARM) # 设置GCC ARM工具链的位置 set(TOOLCHAIN_PREFIX arm-none-eabi-) include_directories( ${PROJECT_SOURCE_DIR}/Inc # 添加其他头文件目录... ) add_executable(${PROJECT_NAME} main.c startup_stm32f103vet6.s ...other source files...) target_link_libraries(${PROJECT_NAME} -T${PROJECT_SOURCE_DIR}/STM32F103VETx_FLASH.ld -nostartfiles -specs=nano.specs -lc -lm -lnosys ) ``` #### 导入Keil项目的具体方法 如果希望更方便地导入已有的Keil UVision工程项目到CLion环境中,则可能需要用到第三方插件或脚本辅助完成此操作。一种常见的方式是从Keil导出IAR工作区(.ewp/.ewd),然后再借助特定工具将其转化为适合CLion使用的格式;不过这种方法较为复杂且不一定适用于所有情况[^3]。 另一种更为简便的方法是在CLion内部安装`UVision Project Importer`插件(如果有提供的话)。该插件可以帮助自动解析.uvprojx文件的内容并将它们映射成相应的CMake变量定义,从而简化迁移流程。 需要注意的是,在实际应用过程中可能会遇到各种各样的挑战,比如不同版本之间API差异、链接选项不一致等问题。建议开发者们保持耐心并查阅官方文档获取最新指导信息。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值