mac电脑开发嵌入式基于Clion(stm32CubeMX)

mac电脑开发嵌入式基于Clion(stm32CubeMX)
电气学生在备赛时期,一定是要接触到入门的嵌入式开发,无论是电赛还是嵌赛,但是市面上大多教程都是基于keil来开发芯片,没mac版本,而B站的STM32课程会使用到STM32CubeIDE这一软件,但是作为一个软件开发者习惯了mac环境下idea,xcode这些优秀IDE,在用keil或者STM32CubeIDE(确实很方便好用,但是Clion会有更优的地方)的时候难免会有点不习惯,于是我在网上找了一些教程,找到了使用Clion来搭载单片机环境开发的方法

一、Clion下载

这个在本人第一篇mac系列博客中能找到,请移步一下看看,这里不进行赘述:

mac用户怎么把代码上传到Gitee(基于Clion)-ZEEKLOG博客

二、 STM32系列软件下载

1.STM32CubeMX 是 STMicroelectronics 提供的一款图形化配置工具,旨在帮助开发人员更高效地完成 STM32 微控制器的初始化和外设配置工作。能够大大提高我们对于单片机开发的效率,但只限于STM32系列芯片

 STM32CubeMX:https://www.st.com/zh/development-tools/stm32cubemx.html#get-software

这时我们还需要下载STM32Cube CLT:它包含了我们需要使用到的CMake、GCC、Ninja、STLink

STM32Cube CLT:https://www.st.com/en/development-tools/stm32cubeclt.html#get-software

三、ST-link下载

不安装的话检测不到stlink。

可能是我电脑的原因,下载完STM32Cube CLT后我的电脑还是检测不到ST-link,所以我们手动下载一个st-link就OK了

st-link官网下载:https://www.st.com/en/development-tools/st-link-server.html

brew install stlink # 插入stlink后以下命令应该能检测到该stlink st-info --probe 

四、Clion配置

这里大家可以自行选择,也可以去网上买一个激活码用完整版的

4.1 注册

之后需要登陆注册,有账号的登陆,没有的注册一个就行

注册好后我们重启Clion

4.2 新建项目

点击新建项目后大家可以发现:我们的Clion是支持直接创建STM32CubeMX项目的,点击STM32CubeMX我们可以看到,Clion自动会帮我们找到我们CubeMX与CubeCLT的位置

注意:如果Clion没有自动找到CubeMX与CubeCLT的位置,需要大家自己寻找一下,手动配置

4.3 启动STM32CubeMX配置准备

4.3.1 点击访问MCU选择器

4.3.2 选择芯片

4.4 可视初始化设置

4.4.1 Debuge模式

由于STM32系列芯片通常使用ST-link,所以我们要设置一下Debuge模式

4.4.2 点灯初始化配置

由于我是用b站一个up主自己画的STM32学习板,所以初始化配置大家仅供参考,只是教大家怎么使用这个方法的过程

将PA6设置为输出模式

右键给标签取个名字

4.4.3 配置Project Manager

生成代码后,会弹出这个弹窗,我们点击打开工程文件夹

4.4.4 把工程文件移到Clion里

这一步非常简单,我们刚才不是打开了工程所在的文件夹吗,把整个文件夹移到CLion这个图标上

点击信任此项目

这样,我们刚才配置的代码就移入Clion了

4.4.5 选择面板配置文件

根据自己型号选择

4.4.6 运行调试配置

随后重启,再重新把工程拖入Clion,这时候会出现配置设置

这里直接按确定就行

4.4.7 配置文件内容

# stm32f103c8t6 stlink-v2.cfg # 文件名可以随便取,放到 board 文件夹中方便在 CLion 中选择 # 使用 stlink-v2 调试器 source [find interface/stlink.cfg] # 使用 hla_swd 调试接口 transport select hla_swd # 目标芯片设定为 STM32F1 系列 source [find target/stm32f1x.cfg] # 不使用复位接口 reset_config none 

这个文件是一个 OpenOCD 配置文件,通常用于在嵌入式开发中连接调试器(如ST-Link)和目标芯片(如STM32F103C8T6),以便进行程序下载(烧录)和调试(比如单步、断点、查看变量等)。

下面我们逐行详细解释这个文件的内容,让你彻底明白它是干什么的、每句话是什么意思。


文件名说明
# stm32f103c8t6 stlink-v2.cfg # 文件名可以随便取,放到 board 文件夹中方便在 CLion 中选择
  • 这两行是注释,不会影响程序运行。
  • 第一行说明这个配置文件是为 STM32F103C8T6 芯片 + ST-Link V2 调试器 准备的。
  • 第二行说明:这个文件的名字可以自己起,但建议放到 OpenOCD 的 board/ 目录下,这样在 IDE(如 CLion + PlatformIO 或 STM32CubeIDE)中可以选择它。
✅ 小知识:OpenOCD 是一个开源的调试工具,支持 JTAG/SWD 接口,用来和 STM32 等 MCU 通信。
第一行:指定调试器接口
source [find interface/stlink.cfg]
  • 作用:告诉 OpenOCD 使用哪种调试器(这里是 ST-Link V2)。
  • source 是 Tcl 脚本语言中的“包含”命令,意思是“加载另一个配置文件”。
  • [find interface/stlink.cfg] 表示在 OpenOCD 安装目录中查找 interface/stlink.cfg 这个文件。

📌 这个 stlink.cfg 文件里定义了:

  • 使用的是 ST-Link 调试器
  • 通信方式是 SWD 或 JTAG
  • USB 识别信息等
💡 举个例子:这就像是你告诉电脑“我要用鼠标”,然后系统加载鼠标驱动。

 第二行:选择传输方式(调试接口类型)
transport select hla_swd
  • 作用:选择调试通信协议,这里使用 SWD 模式(Serial Wire Debug)。
  • hla_swd 中的 hla 是 "High Level Adapter" 的缩写,表示兼容 ST-Link、J-Link 等通用调试器的抽象层。
  • STM32 支持两种主要调试接口:
    • JTAG:引脚多,功能强
    • SWD:只需要 2 根线(SWCLK 和 SWDIO),更常用,推荐使用
✅ 所以这行的意思是:“我用的是 ST-Link,走 SWD 协议来和芯片通信”。

第三行:指定目标芯片
source [find target/stm32f1x.cfg]
  • 作用:告诉 OpenOCD 当前要调试的芯片是 STM32F1 系列(比如你用的 STM32F103C8T6 就属于这个系列)。
  • target/stm32f1x.cfg 是 OpenOCD 内置的一个配置文件,里面包含了:
    • STM32F1 系列的内存布局(Flash、RAM 地址)
    • 如何复位芯片
    • Flash 编程算法
    • 内核类型(Cortex-M3)
💡 这相当于告诉调试器:“我现在要控制的是一个 STM32F1 的芯片,它内部是怎么工作的我知道”。

 第四行:配置复位方式
reset_config none
  • 作用:设置芯片的复位引脚(NRST)如何处理。
  • none 表示:不使用外部复位信号,也就是你的 ST-Link 没有接目标板的 NRST 引脚。

📌 常见选项:

  • reset_config none:不使用复位线,只靠软件复位。
  • reset_config srst_only:只使用系统复位(SRST),即 NRST 引脚。
  • reset_config srst_nogate:允许复位但不“屏蔽”其他操作。
⚠️ 如果你把 ST-Link 的 NRST 引脚接到 STM32 的复位脚上,可以改成 reset_config srst_only,这样调试器能更可靠地重启芯片。

 举个生活化的比喻

想象你要控制一台机器人(STM32芯片):

比喻实际对应
你用的遥控器ST-Link 调试器
遥控器用蓝牙连接SWD 通信协议
机器人型号是“机械臂V1”STM32F1 系列
你写了一份说明书给电脑这个 .cfg 配置文件
说明书告诉电脑怎么连遥控器、怎么发指令OpenOCD 读取配置,建立连接

这个配置文件就是这份“说明书”。

4.4.8 调试及烧录

代码写好后,再把我上面的配置文件内容复制到自己的配置文件里

点击小三角

即可烧录完成


由于笔者暑假放假回家,身边没有单片机,所以实践的内容等到开学后更新

Read more

GO谷歌安装器.apk一键安装包:快速安装Google三件套

GO谷歌安装器.apk一键安装包:快速安装Google三件套 【下载地址】GO谷歌安装器.apk一键安装包GO谷歌安装器.apk是一款专为Android设备设计的便捷工具,集成了Google三件套(Google Play商店、Google服务框架、Google账户管理器),帮助用户快速完成安装。通过一键操作,简化了繁琐的安装步骤,确保安全可靠。该安装器兼容性强,适用于多种设备,让用户轻松享受Google应用服务。只需下载并按照提示操作,即可在设备上畅享Google功能。无论是新手还是资深用户,GO谷歌安装器都能为您提供高效、无忧的安装体验。 项目地址: https://gitcode.com/Premium-Resources/b1af5 在众多Android设备的应用安装工具中,GO谷歌安装器.apk一键安装包无疑是最引人注目的选择之一。它为用户提供了便捷、高效的方式来安装Google三件套,无需繁琐步骤,让使用Google服务的体验变得更加轻松。 项目介绍 GO谷歌安装器.apk是一个专为Android用户设计的安装工具,其核心功能是帮助用户一键安装Google Play

By Ne0inhk
Spring Boot 3.3.x、3.4.x、3.5.x 深度对比与演进分析

Spring Boot 3.3.x、3.4.x、3.5.x 深度对比与演进分析

Spring Boot 3.3.x、3.4.x、3.5.x 深度对比与演进分析 ——从稳定性、架构能力到长期演进策略的系统性解读 本文 从 “架构师 / 技术负责人视角”。进一步 拉开层次、拉深分析深度,不只是“版本有什么”,而是说: 为什么要升?什么时候升?升到哪一条线风险最低?不同类型系统怎么选? 一、背景:Spring Boot 3.x 已进入“成熟期” 从 2023 年 Spring Boot 3.0 正式落地 Jakarta EE 9+ 开始,3.x

By Ne0inhk
SpringAI 大模型应用开发篇-SpringAI 项目的新手入门知识

SpringAI 大模型应用开发篇-SpringAI 项目的新手入门知识

🔥博客主页: 【小扳_-ZEEKLOG博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录         1.0 SpringAI 概述         1.1 大模型的使用         2.0 SpringAI 新手入门         2.1 配置 pom.xml 文件         2.2 配置 application.yaml 文件         2.3 配置 ChatClient         2.4 同步调用         2.5 流式调用         2.6 System 设定         2.7 日志功能         2.8 会话记忆功能

By Ne0inhk
【MySQL数据库基础】(三)MySQL 库的核心操作全解析:创建、修改、备份一条龙搞定

【MySQL数据库基础】(三)MySQL 库的核心操作全解析:创建、修改、备份一条龙搞定

前言         在 MySQL 的学习和实战中,数据库(库)的操作是最基础也是最核心的环节,无论是项目开发、数据管理还是运维维护,都绕不开库的创建、配置、修改、备份等一系列操作。很多刚接触 MySQL 的小伙伴容易在字符集、校验规则、备份恢复这些细节上踩坑,今天这篇文章就结合实战案例,把 MySQL 库的全套操作讲透,从基础语法到高级技巧,从避坑指南到实战演示,让你一文掌握 MySQL 库操作的精髓! 一、创建数据库:基础语法与个性化配置         创建数据库是操作 MySQL 的第一步,看似简单的一句命令,背后却藏着字符集、校验规则的关键配置,选对配置能让后续的开发和数据管理少走很多弯路。 1. 核心创建语法         MySQL 中创建数据库的官方语法如下,其中大写部分为关键字,中括号[]内的为可选项,也是实际开发中需要重点关注的部分: CREATE DATABASE [IF NOT EXISTS]

By Ne0inhk