0.前言
Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统。与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。---keil_百度百科 (baidu.com)
确实,Keil这款老牌IDE陪伴着我们从入门到提高,功不可没。But,现在随着科技的发展和技术的进步,一个“喜新厌旧”、喜欢尝鲜、喜欢折腾的硬件攻城狮在接触和使用计算机行业的一些优而美的IDE(CLion、Pycharm、VScode .etc)之后,不禁感叹这些工具真**好用,代码自动补全、智能分析检查真的会让人事半功倍,对于一个打字慢、英文差、记性不好的开发者来说简直是天赐的福音,直接缩小差生和优生之间的部分(严谨)差距😁。自动格式化代码、分门别类的颜色显示等特性让你从此爱上写代码,好吧我承认是个颜控,还有好多好多可以提高效率的特性感兴趣的话自行入坑探索......这段话纯粹是一些心里话,如果你跟作者臭味相投,那么废话不多说,直接上正菜。
本文是由华为天才少年稚晖君种草,并结合其他网友的慷慨分享,以及本人实际搭建开发环境踩坑总结而来,在此致谢大家。
1开发环境及所需工具
硬件环境:
- STM32F103VET6
- ST-Link下载器
软件环境:
-
Windows 11(22H2)
- STM32CubeMX
- Clion2023.2
- MinGW
- OpenOCD
- arm-none-eabi-gcc
传送门:链接:https://pan.baidu.com/s/1IuGkt4vR3AxMPMLTpHQ0bA
提取码:pb1d
工具安装
1.CLion
支持正版,建议大家从官方网站下载安装。
传送门:Download CLion: A Smart Cross-Platform IDE for C and C++ (jetbrains.com)
Step1:双击Clion-2023.2.exe打开安装程序,点击Next。
Step2:选择安装目录,点击Next。
Step3:配置安装选项,这里全选,点击Next。
Step4:选择启动菜单文件夹创建快捷方式,点击Install。
Step5:等待安装完成,稍后重启,点击Finish。
Step6:激活。双击install-current-user.vbs或install-all-users.vbs,等待完成,显示Done。
Step7:打开CLion,同意并继续,数据共享随便选一个。
Step8:输入激活码,点击Activate,恭喜获得两年订阅,狠狠使用吧。
2.STM32CubeMX
官方免费下载最新版本,不用客气,狠狠使用吧。
STM32CubeMX:图形化工具 - 意法半导体STMicroelectronicsa
安装过程不多说了,选择合适安装路径,然后一路Next,最后Done完成安装。
下面简单介绍下新建工程、配置以及生成代码的步骤 ,关于软件的详细使用大家自行学习。
Step1:打开STM32CubeMX,New Project,Start My project from MCU。第一次使用会从服务器自动安装一些东西,别着急耐心等待安装。
Step2:安装完成后自动进入下面界面,选择目标芯片,双击它。
Step3:双击以后,进入芯片引脚配置界面,展开左侧导航栏System Core,选择SYS,右侧Debug下拉框选择Serial Wire 。
Step4:在左侧导航栏System Core,选择RCC,右侧High Speed Clock(HSE)下拉框选择Crystal/Ceramic Resonartor 。
Step5:在最右侧芯片图,选择PB5和PE5配置为GPIO_Output,因为我的板子上这俩引脚控制LED灯。各位自行发挥~
Step6:配置时钟,再满足时钟约束条件下自己随便捣鼓。
Step7:项目管理。填写项目名称,选择项目路径以及Toolchain/IDE,点击GENERATE CODE。
Step8:打开项目。点击生成代码后弹窗点击Close,待会直接去项目文件夹右键鼠标使用CLion打开文件夹作为项目。
打开项目后会弹窗,别怕~是因为我们还没配置嵌入式开发环境、编译和调试工具等。
有句古话叫缺啥补啥。来,走着~
3.MinGW
Step1:打开mingw-get-setup.exe,点击Install。
Step2:修改安装目录,不要有空格,点击Continue,等待安装完成。
Step3:安装完成后选择组件进行下载,这里选择Basic Setup里面的全部组件,然后点击菜单栏Installation->Apply changes,在弹窗中点击Apply开始安装
等待安装完成,点击close。
4.OpenOCD
OpenOCD(Open On-Chip Debugger)是一个开源的片上调试器,可以用于烧写调试程序,支持多种硬件调试接口,如JTAG(Joint Test Action Group),SWD(Serial Wire Debug),提供许多不同芯片和处理器体系结构的调试。
下载好直接解压到一个目录(不要有中文和空格),我解压到Program File文件夹下,路径包含了空格,导致Debug功能报错,在网上苦苦查询才得以解决,很多教程没有提到这点,写下此篇记录。
5.arm-none-eabi-gcc
下载ZIP压缩包形式的,然后解压到一个目录即可,我选择跟STM32CubeMX一个根目录,方便管理。传送门:Downloads | GNU Arm Embedded Toolchain Downloads – Arm Developer
OK,到此完成所有工具的安装~接下来是非常重要的配置过程了
首先,将MinGW和arm-none-eabi-gcc 添加进环境变量,确定确定,然后关闭重启电脑。
重启后可以测试一下Windows+R ->CMD 测试gcc -v 和arm-none-eabi-gcc -v两条指令, 验证安装是否成功以及环境变量设置是否正确。成功安装可参照下图:
CLion配置
找到项目路径,鼠标右键选择Open Folder as CLion Project。打开后,进行配置:
一、点击File->Settings->Build,Execution,Deploment->Toolchains,参照下图进行设置:
- 点击➕,新建一个工具链
- 重命名,这里叫MinGW-STM32
- 选择MinGW文件夹
- 保持默认捆绑
- 保持默认
- 分别选择arm-none-eabi-gcc、arm-none-eabi-g++、arm-none-eabi-gdb
设置完成点击OK。
二、点击File->Settings->Embedded Development,分别选择OpenOCD和STM32CubeMX路径,点击Test,显示绿色即表示没问题,点击OK。
三、回到工程中,查看左下角CMake,可以点击刷新按钮,不报错了。
四、创建工程配置文件。方法:在工程路径下新建config文件夹,新建文本文件,将下面内容粘贴进去,保存,重命名st_link.cfg,注意将后缀txt改为cfg。
# choose st-link/j-link/dap-link etc.
source [find interface/stlink.cfg]
#transport select swd
transport select hla_swd
#这里的stm32f1x.cfg对应的是你的板子的相应芯片型号
source [find target/stm32f1x.cfg]# download speed = 10MHz
adapter speed 10000
五、点击顶栏竖着的三点->Edit,点击➕,新建OPenOCD配置,按下图配置:
好的,至此完成全部配置了,让我们愉快地去点个灯~⭐一闪一闪亮晶晶
打开main.c,在while(1)中添加代码:
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_5,GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOE,GPIO_PIN_5,GPIO_PIN_SET);
HAL_Delay(200);
HAL_GPIO_WritePin(GPIOE,GPIO_PIN_5,GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_5,GPIO_PIN_SET);
HAL_Delay(200);
这里用到HAL库,有更好的移植性,引脚需改为自己板子上LED控制引脚。
点击上图的小锤子,Build一下。需要Load点击中间三角,需要Debug就点击小虫子。
最后来看一下成功下载和成功进入Debug的界面开心下吧~
码字不易,第一次写这么详细的教程,点个赞支持一下吧 ~囧rz