CLion安装过程以及使用CLion实现STM32F103点灯

一、前言

通过学习嵌入式我发现咱们运用Keil来编译工程文件并烧录好像存在很多缺点。
例如:
Keil的编译界面十分老旧对于用惯了新型IDE的我们来说很不友好,看起来好像是上个世纪的产物。
可能大家跟我一起做实验的时候会发现,咱们用Keil对于一些代码量“较大”的工程进行编译的时候需要大量的时间,这里的代码量“较大”也只是相对于咱们的基础工程而言。
其实Keil还是有其优点的,比如在Keil中进行仿真运行可以对咱们的工程进行逻辑分析,非常的方便。

在之前的学习与实验中我使用的一直是Keil这款老软件,直到最近老师突然告诉我们最新的CLion可以用来代替Keil用来对我们的工程进行编译并生成HEX文件,beautiful!

二、CLion介绍

Clion 是一款专门开发 C 以及 C++ 所设计的跨平台的 IDE。它是以 IntelliJ 为基础设计的,包含了许多智能功能来提高开发人员的生产力。
这种强大的 IDE 帮助开发人员在 Linux、OSX 和 Windows 上来开发 C/C++ ,同时它还能使用智能编辑器来提高代码质量、自动代码重构并且深度整合 Cmake 编译系统,从而提高开发人员的工作效率。
CLion 支持 GCC、clang、MinGW、Cygwin 编译器以及 GDB 调试器。提供对 Cmake 支持:包含自动处理 Cmake changes 和 Cmake Targets,更新新创建的 C/C++ 档案以及 Cmake Cache 编辑器。

三、CLion安置过程

1、CLion下载

刚刚为大家安利了这么一款软件,肯定就有小伙伴要问了:这么好个东西在哪里能购买到呢!
告诉大家一个好消息,这么好的东西咱们在官网上就能点我直接下载
在这里插入图片描述

咱们点击下载以后,再告诉大家一个好消息,咱们可以直接免费试用30天的教育版,并且如果你是高校学生正巧你拥有一个学校的邮箱,那么咱们就可以免费申请一年的试用(我就是这样白嫖的,嘻嘻)。
值得注意的是:
咱们最好下载最新版的CLion,因为我们需要结合CubeMX试用,有一些老版本可能无法调试CubeMX。

  • 点击下载好的CLion-2021.3.exe准备进行安装
    在这里插入图片描述
  • 选择好安装目录点击Next
    在这里插入图片描述
  • 选中如图所示选项,然后点击Next
    在这里插入图片描述
  • 点击安装
    在这里插入图片描述
  • 等待安装完成
    在这里插入图片描述
  • 安装完成之后咱先别慌重启,点击完成即可
    在这里插入图片描述

2、安装配置arm-none-eabi-gcc

Windows点击,进入网页之后找到gcc-arm-none-eabi-10.3-2021.10-win32.zip点击下载,也可以下载.exe,但是这里建议下载压缩包。
在这里插入图片描述
下载完成之后需要咱们先解压,解压之后我们要注意bin文件夹的路径,需要我们将bin文件夹的路径添加到环境变量中:
在这里插入图片描述
添加环境变量:
在这里插入图片描述
添加好以后我们来测试一下是否安装成功,Win+R键输入cmd调出命令行,输入arm-none-eabi-gcc -v,弹出如下图所示信息即为安装成功:
在这里插入图片描述

3、安装配置OpenOCD

点击进入官网下载,下载最新版即可:
在这里插入图片描述
下载完之后,解压路径我们一定要记住:
在这里插入图片描述
打开我们的CLion,点击File-Settings-Build-Embedded Development,进行如图所示配置,将openocd.exeSTM32CubeMX.exe文件进行配置:
在这里插入图片描述
点击“OK”即可
到此,咱们的安装和配置工作就完成了,接下来就需要咱们创建工程了。

四、创建工程点亮LED

1、题目要求

安装Clion2021,采用一套新的嵌入式软件开发工具包(替代Keil),完成stm32F103 点亮LED的程序。

2、创建工程

打开CLion创建一个新的工程,选择好存放路径点击Create
在这里插入图片描述
等待调用CubeMX
在这里插入图片描述
CLion调用CubeMX创建好初始的.ioc 文件之后需要我们对其进行配置,点击Open with STM32CubeMX
在这里插入图片描述
由于这个ioc文件是CLion调用CubeMX直接生成的,其默认的芯片是F030F4Px,所以需要我们改成我们需要用的芯片,点击左上角进入芯片选择。
在这里插入图片描述
选择好芯片之后咱们直接进行配置,配置SYS
在这里插入图片描述
配置RCC
在这里插入图片描述
由于我们要点灯,我的最小系统板上自带的LED为PC13,所以直接配置PC13为输出即可
在这里插入图片描述

3、CubeMX工程导出

我们的CubeMX工程已经配置好了,现在需要我们导出,但是导出需要注意的点特别多,如下图一样配置
在这里插入图片描述

这里需要注意的是,CubeMX中的工程名称需要和我们前面的创建CLion创建的文件名称相同,并且大家可以打开自己存放CLion工程的文件夹,可以看到在该文件夹中有一个ioc文件在这里插入图片描述
此时我们选择的CubeMX工程存放路径需要在该文件夹的上一级,大家可以参考我的上面两张图对比一下存储路径一定不要搞错了!!!

大家点击生成代码如果弹出如下图所示警告则代表成功,表示的是咱们现在创建的文件把之前自动生成的ioc文件覆盖了,一直点击“Yes”即可
在这里插入图片描述

如果出现的不是上图所示界面,建议考虑一下是否是文件存放路径问题。

在这里插入图片描述
直接点击打开工程,选择打开方式为Clion即可回到CLion界面。

4、配置CLion工程文件

回到CLion中,会弹出以下窗口
在这里插入图片描述
选择“stm32f103c8_blue_pill.cfg”,这里每个人的顺序可能不一样,有点难找千万别选错了。

注:可能有些小伙伴回到CLion界面以后,没有弹出该窗口。建议大家点击“Core”->“Src”->“main.c”,找到主函数,此时应该就可以弹出该窗口了,如果还没有的话建议回到CubeMX重新生成一遍代码即可。

现在咱们的工程基本配置完毕,由于我们需要点灯,所以我们要在main.c文件的while循环中添加闪灯代码:

while (1)
  {
    /* USER CODE END WHILE */
    HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET);
    HAL_Delay(500);
    HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET);
    HAL_Delay(500);
    /* USER CODE BEGIN 3 */
  }

紧接着点击咱们右上角的“小榔头”进行编译
在这里插入图片描述
编译后无报错则成功
在这里插入图片描述
由于我没有ST-link,所以借助FlyMCU进行烧录,打开FlyMCU找到咱们存储工程的文件夹,点击cmake-build-debug就可以看到hex文件
在这里插入图片描述

五、效果展示

请添加图片描述
大家可以看到PC13上的LED小灯一直都在闪烁,实验完成!

六、总结

其实CLion的安装过程和环境配置真的很方便的,参考的博客也写得很详细,每一步都有参考,但是在该过程中一定要仔细,否则会出一些意想不到的错误。我在实验的过程中出现了许多状况,最离谱的是我在CubeMX中无法反过去打开CLion,回到CLion中虽然ioc文件已经更新了,但是那个“小锤子”一直是灰色的一直无法编译,由于网上的关于这方面的资料真的太少了,所有我能看的文献都已经试过了,就连JB官方的英文反馈我都去看了,依然没有解决问题。并且在寻找解决方案的过程中我尝试求助过老师,但是老师屁都不放一个,真的快把我搞崩溃了,整整通宵搞了两天,无数次重装与配置。知道写这篇博客的时候,切屏的过程中那个小锤子竟然亮了!喜极而泣!
最后,我在实验过程中真的踩了很多坑,希望大家能吸取我的教训遇到什么问题都可以给我留言,帮大家看一看。

参考资料

CLion2021 的详细安装并基于 CLion 实现 stm32F103 点亮 LED
arm-none-eabi-gcc下载
OpenOCD下载

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
STM32F103是STMicroelectronics推出的一款32位ARM Cortex-M3内核的单片机系列产品。OTA(Over-The-Air)是指通过无线通信方式进行固件升级的技术。在STM32F103中,OTA技术用于实现无线方式进行固件升级。具体来说,OTA功能需要涉及到一些文件以及函数的操作。 在给出的引用代码中,可以看到涉及到OTA的一些关键函数和结构体定义。 引用中的代码定义了一些与OTA相关的函数,例如Load_App_Info()函数用于加载APP信息,Update_App_Info()函数用于更新APP信息,Jump_To_BootLoader()函数用于跳转到Bootloader等。 引用中的头文件"ota_boot_info.h"定义了一个名为APP_Info_t的结构体,结构体中包含了一些与应用程序版本、升级标志位等相关的信息。 引用中的头文件"ota_upgrade_utils.h"定义了一些OTA升级过程中的工具函数,例如ota_version_compare()函数用于比较版本号,ota_convert_u8_to_str()函数用于将uint8_t类型的数据转换为字符串等。 综上所述,stm32f103 OTA是指通过无线通信方式实现固件升级的功能。在此过程中,使用了一些特定的文件和函数来实现相关的功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Clion开发STM32之OTA升级模块(三)](https://blog.csdn.net/weixin_44742767/article/details/130778269)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Clion开发STM32之OTA升级模块(最新完整版)](https://blog.csdn.net/weixin_44742767/article/details/130938069)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值