CLion配置STM32开发环境

发布时间:2023-03-23  

一、前言

  上一篇文章介绍了VSCode配置STM32的开发环境,本文将介绍使用CLion配置STM32的开发环境,很多喜欢稚晖君的小伙伴,都知道稚晖君使用的是CLion开发STM32,并且稚晖君的知乎上也有介绍CLion配置STM32的开发环境的文章。我针对我的使用情况,对我遇到的一些问题做一下总结,并且展示解决的办法。本次介绍的也是HAL库开发。B话不多说,开干~

二、软件及环境准备

1、CLion2021.3.3

  官网下载地址:CLion: A Cross-Platform IDE for C and C++ by JetBrains,CLion是收费软件,解决办法如下:

  a、购买CLion正版授权,199美刀一年,第二年好像就要便宜一些。

  b、使用学生证或者在线学籍申请可以免费使用一年

  c、找马云清空购物车

2、STM32CubeMX

  官网下载地址:STM32CubeMX - STMicroelectronics

3、MinGW

  下载地址:bit.ly/mingw10

MinGW下载

4、gcc-arm-none-eabi

  下载地址:Arm GNU Toolchain | GNU Arm Embedded Toolchain Downloads – Arm Developer,下载压缩包的即可。

gcc-arm下载

5、OpenOCD

  下载地址:Download OpenOCD for Windows

openocd下载

三、环境配置

1、安装软件

安装好CLion和STM32CubeMX

CLion和CubeMX

2、解压工具

解压出MinGW、gcc-arm-none-eabi和OpenOCD放在C盘根目录下,(也可以放在其他地方,我C盘大,所以啥都放在C盘的)

下载完成的工具

解压完成的工具

  解压出来文件名比较长,可以修改一下文件名,将名字缩短一点,这里我是修改了文件夹的名字的

3、添加环境变量

  将解压出来的MinGW、gcc-arm-none-eabi和OpenOCD文件夹中的bin文件的路径添加进系统的环境变量

  首先,在系统搜索框搜索环境变量,然后点击“编辑系统环境变量”

搜索系统环境变量

  在“高级”中选择“环境变量”

选择环境变量

  选择“Path”,点击“编辑”

编辑路径

  点击“新建”,将工具的bin文件路径添加进环境变量中

添加路径

4、测试

  在控制台输入g++ -v、openocd -v和make -v出现了版本号,则表示添加成功。

测试工具

四、CLion配置

  打开CLion,创建一个工程或者打开一个文件夹,然后点击“file”选择“Setting”

设置

  找到“Build,Execution,Deployment”下的“Toolchains”。将Toolset选项选择为MinGW的文件夹,后面的会自动识别;将Debugger设置为gcc-arm下的arm-gcc-none-eabi-gdb.exe。(注意:Debugger可以不用更改)

  在CMake处确认工具链是否正确

  在Embedded Development栏设置Openocd.exe和STM32CubeMX.exe的位置路径。然后点击Test,弹出绿色气泡则没有问题。

五、CubeMX工程创建和编译

  点击file->New->Project,创建一个STM32CubeMX的工程,注意:CubeMX生成工程的文件名必须和CLion中的一样,否则CLion不会更新工程,并且Cube MX会生成一个新的工程文件夹

  点击“open with STM32CubeMX”,打开后会发现默认的是STM32030F4Px的芯片

打开CubeMX

默认芯片

  我们将它修改为自己使用的芯片,这是我是使用的正点原子探索者的板子,所以我修改芯片类型为STM32F407ZGTx。

芯片替换

  中间的配置过程就不在叙述,能来研究CLion开发STM32,我相信Cube MX配置芯片是没有任何问题的;在生成代码之前,项目名字必须和之前CLion中的名字一样,然后IDE选择SW4STM32,最后生成代码。完成后点关闭,CLion中会自动更新

工程生成

  回到CLion中,会提示选择一个文件,这个文件是下载时需要用到的,国外的喜欢以板子为例来设置文件,可能会跟我们使用的芯片不符合,所以先点击取消,我们后面再来说。

选择下载文件

  CLion中,这三个图标分别为编译下载调试

  点击绿色的小锤子,则可以编译整个工程

  如果有新增加的C/C++文件,则需要在CMakeLists.txt中添加所增加文件的路径

添加编译源文件路径

六、程序下载

  下载程序前,可以看到编译和下载之间的选项有个红色的小叉,是因为没有配置下载需要的文件。

调试提示

  我们在工程文件夹里面新建一个文件,然后取名stlink.cfg(可以自己定义名字,但是后缀得是.cfg)

新建文件

  在文件中写入如图所示代码,第一行是下载器配置文件,这里我使用的是ST-LINK V2,第二行代码是选择调试接口,第三行代码是所使用芯片的配置文件,第四行代码是下载速度。

下载配置代码

  提示:stlink-v2.cfg和stm32f4x.cfg在openocd的文件夹中,其路径为:C:OpenOCDshareopenocdscripts

  stlink-v2.cfg在interface文件夹中,stm32f4x.cfg在target文件夹中,里面有需要的各种配置文件

配置文件路径

  配置文件写好后,需要在CLion中加载;在选项框选择Edit Configurations...

选择编辑

  然后在Board config files中添加刚才写的下载配置文件

添加配置文件

  最后点击下载按钮,就可以快乐的下载程序了

下载完成

七、遇到过的问题

1、新增cpp源文件和头文件关键字问题

  在新增cpp的源文件和头文件后,编译时会提示 No such file or directory的错误。

错误提示

  那是因为在加入新的cpp源文件和头文件的,默认选择了 Add to targets。

增加Add

  因此,在CMakeLists.txt,会将文件添加在如图所示位置,将其删掉则可编译成功。

删除文件

  如果在第一次添加源文件和头文件时,将Add to targets取消掉,文件则不会添加到上图所示的位置。

取消Add

  但是,这也会出现另一个问题;在使用C++类时,class关键字会报错。出现这个问题的原因我也不知道。

关键字错误

2、FreeRTOS编译时报错

  使用CubeMX生成FreeRTOS操作系统后,点击编译会出现如下图所示的错误

FreeRTOS编译错误

  解决办法,在CMakeLists.txt文件中,将如图所示两行代码的注释取消掉即可。注意:CubeMX重新生成代码的时候,这两句会被重新注释上。

取消注释

关于printf函数的重定向,由于本人好像使用得不多(基本没怎么使用),也就没有研究,具体得可以参考稚晖君的文章。本文也是参考了稚晖君的文章,根据自己遇到的问题所作,记录一下。以免后面再回过头来学习时忘记。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    STM32单片机在KIEL4配置开发中的设置;开发环境:KIEL4,芯片STM32F103VCT6。函数库VC3.5 1.配置开发环境。 2.Option for Target,主要是C/C++和......
    S3C6410开发板开发环境的搭建;本节主要介绍了S3C6410开发板及OK6410开发板。OK6410开发板是基于ARM11主要步骤如下:。 OK6410开发板自带一个串口,PC也需......
    也使得它可以处理更多的数据,同时保持了非常低的耗能量,从而降低了总体成本。4. 开发环境Ch32v103芯片的官方支持并不完善,因此,开发者需要自行下载并配置开发软件、编译工具链、烧写......
    S3C2440使用RAM来挂载jffs2文件系统;开发环境:PC主机:Ubuntu 和 RedHat 9.0目标板:TQ2440开发板,linux内核2.6.30,根文件系统为YAFFS。 0......
    JTag烧写到Sdram中去执行。由于在ubuntu下使用习惯了,想脱离集成开发环境,所以在Linux下使用arm-linux-gcc 等工具开发。首先遇到的问题就是开发......
    [S3C6410-00]嵌入式linux开发环境搭建;这篇文章是对之前的一个小结,涉及到的东西是从事嵌入式linux开发中最基本的环境搭建问题,后续我会把自己总结的东西都放到网上。闲话少说,开始......
    友善之臂之mini22440开发环境搭建;最近在学习嵌入式Linux驱动编程,平台是友善之臂的mini2440开发板,堪称经典古董级别的,不过在互联网上它的资料和视频教程非常多,适合初学者入门。在学......
    折腾换到XP了,所以只好用网络烧写了(PS:懒得吐槽windows了)。 至于怎么在Linux主机上开启NFS系统,详见上述韦东山老师的书。(PS:大家不要被我的开发环境给搞晕了,一会Win7一会......
    将帮助我们的客户改造E/E架构,促进ECU和新产品的早期开发,并最终带来更大的价值。”面向多设备配置ECU开发的集成开发环境瑞萨支持多设备的集成开发环境能够在ECU层面推动软件开发,为车辆增加附加价值,助力“软件......
    -sd.bin 第三步:把android_fs.tar、mmc.bin和zImage复制到SD卡上,设置开发板的启动开关。 第四步:从SD卡烧写Android 第五步:校准屏幕 3配置有线网络  由于......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>