50元从零到成品:一套AI辅助的嵌入式实战入门教程——基础工程篇

还记得大学那会儿第一次用STM32,打开CubeMX对着满屏的配置项一脸茫然------RCC是什么?SYS又是干嘛的?GPIO怎么这么多模式?当时没人告诉我该先点哪里,我只能一个选项卡一个选项卡地瞎试,试错了就重来,折腾了一下午才把LED点起来。

现在回头想想,其实基础工程的配置根本没那么复杂,核心就三个地方:GPIO、RCC、SYS。把这仨搞明白,后面的所有外设实验就都有了落脚点。这篇咱们就聚焦这三个配置,手把手把工程跑起来。

省流版:

  • ✅ 简单介绍GPIO、RCC、SYS配置

  • ✅ 基础工作链接在文末

一、为什么先讲工程配置?

本系列的目标是用STM32F103C8T6核心板 ,一步步做出一个室内环境检测系统 。但不管后续要做哪个外设实验、接什么传感器,都绕不开一个基础操作------用STM32CubeMX配置一个能正常运行的工程

万事开头难。刚开始接触的时候,缺失的知识太多,很多地方根本不知道从哪下手------晶振频率该填多少?调试接口选哪个?生成代码的时候哪些选项是干什么的?虽然现在的AI能解答不少疑惑,但实际操作上还是需要有个大概的印象才能问出正确的问题。

所以这篇咱们就把这个"开头难"给破了。跟着走一遍,以后不管做什么项目,第一步都不会再卡住。

二、先认识一下配置界面

选择完芯片之后,映入眼帘的是这样一个界面:

左侧可以看到分成很多栏配置,右侧是芯片的引脚视图,下方则是具体的功能配置区域。后续的文章会逐一介绍并实践各个模块,但这次咱们只聚焦System Core------这里是芯片本身的一些基础配置,关乎设备能不能正常跑起来。

重点要配置三个部分:GPIO、RCC、SYS。下面一个一个说。

三、GPIO配置------让引脚干活

芯片周围一圈的引脚就是GPIO(General Purpose Input/Output,通用输入输出)。我们板子上两侧的排针,就是把芯片的引脚印出来方便我们使用。

GPIO可以配置成多种模式------既能输出高低电平去控制LED、蜂鸣器,也能采集外部的高低电平信号来读取按键状态。后续所有外设功能,本质上都是基于GPIO来实现的。关于GPIO的详细功能,我们会在后续篇章中长期接触,这里先简单跟着配置,把板子上的LED点起来。

操作步骤:

找到芯片左上角的PC13 引脚------这个引脚连接着板子上的一个LED灯。直接用鼠标点击这个引脚,在弹出的菜单中选择GPIO_Output模式就行了。

就这么简单。一个GPIO输出引脚就配置好了。

四、RCC配置------给单片机一颗精准的心脏

RCC(Reset and Clock Control,复位与时钟控制)用来配置设备的外部晶振。

晶振可以理解为一个一直在跳动的器件,它提供一个稳定的时间频率------可以说是单片机的心脏。STM32这类单片机内部是有内置晶振的,但内部晶振的准确度不够高,所以大多数板子都会外接一个晶振来提高精度。

我们这块板子用的是8MHz的外部晶振。

操作步骤:

  1. 点击左侧的RCC选项卡

  2. 在右侧会看到两行配置项,分别对应高速外部晶振(HSE)低速外部晶振(LSE)

    • 高速晶振:就是单片机的主频来源,我们日常说的"跑72MHz"就是指这个

    • 低速晶振:一般用于RTC时钟计数,通常固定为32.768kHz

  3. 这次我们只需要配置高速时钟晶振,在HSE 那一栏选择Crystal/Ceramic Resonator

配置完这一步还没完------还需要切换到**时钟树(Clock Configuration)**界面。

时钟树的作用是:根据硬件上实际焊接的晶振频率,通过倍频或分频,给每个功能外设分配时钟节拍。我们这里晶振是8MHz,就在时钟树的输入框里填上8

如果觉得手动配置太麻烦,可以点一下自动配置按钮,让工具自己算------只要看看别的模块有没有报错就可以了。

五、SYS配置------告诉调试器怎么连接

SYS(System,系统配置)主要关乎系统调试和控制,落实到操作上就是选择用什么仿真器接口

仿真器是我们用来下载和调试程序的工具,常用的接线方式有SWDJTAG两种。实际工程中,JTAG占用的GPIO太多,所以基本上都采用SWD方式。

序言篇推荐的JlinkOB这种简易仿真器只支持SWD,而且只支持一些入门级的单片机(比如F103系列)------对我们来说刚刚好,性价比高。

操作步骤:

  1. 点击左侧的SYS选项卡

  2. Debug 那一栏选择Serial Wire

搞定。

六、其他配置------导出工程前的收尾工作

以上三个核心配置完成后,还有几个细节需要设置一下:

1. 工程名称和导出格式

Project Manager选项卡中:

  • 设置工程名称

  • 选择Toolchain/IDEMakefile(配合我们之前配置的GCC编译链使用)

2. 独立文件生成

勾选Generate peripheral initialization as a pair of '.c/.h' files per peripheral ------这个选项会让CubeMX把每个外设的代码分成独立的.c和.h文件,程序结构更清晰。强烈建议勾选,后续维护会方便很多。

全部设置完成后,点击右上角的GENERATE CODE,工程就生成好了。

七、两个重要注意事项

1. USER CODE区域

生成的代码中有很多注释标记着USER CODE BEGINUSER CODE END。后续我们在工程中添加自己的代码时,必须写在这两种注释中间。这样才能确保以后修改CubeMX配置、重新生成代码时,我们自己写的内容不会被删掉。

2. 不要改驱动文件

尽量不要在CubeMX生成的驱动文件中添加业务代码。正确的做法是:把自己的代码放到自己新建的文件中,然后在生成的文件里调用对应的函数即可。这样层次清晰,也方便后期维护。

3. 编码格式

留意一下编译器右下角的编码格式。我们自己创建的文件,编码格式最好采用GB2312------因为GB2312方便后续通过串口输出中文数据。总之信我准没错哈哈。

像后续我们主要靠AI编程的话,可以把这些规则写到AI的系统提示词里。

这里分享一下我设计的简单规则模板,后续随着操作深入,那些需要经常提醒AI的点都可以添加到这里:

  1. 用户代码必须写在USER CODE BEGIN/END注释之间

  2. 不要修改CubeMX生成的驱动文件

  3. 新建源文件使用GB2312编码

  4. (后续按需追加...)


到这儿,一个完整的STM32CubeMX基础工程就配置好了。下一篇我们进入真正的开发环境配置篇,把自动下载脚本跑起来,让LED真正开始闪烁。

资源包放在文末,解压即用,里面包含了本篇用配置的工程。有任何问题欢迎在评论区留言交流~

通过网盘分享的文件:基础工程.rar 链接: https://pan.baidu.com/s/1tETbxsL1g3pMVFBG1mcwmA 提取码: pxta --来自百度网盘超级会员v4的分享

相关推荐
无凭1 小时前
DeerFlow 的可观测性(一):RunJournal 如何记录 Agent 运行过程
人工智能·开源
迷迭香yy1 小时前
行业板块轮动因子实战从板块资金到因子建模的本地化Python全流程
数据库·人工智能·python
牛奶咖啡131 小时前
AI助力运维——AIGC运维应用实践—Deepseek的介绍与本地部署选型
运维·人工智能·deepseek·deepseek能做什么·deepseek本地部署配置·本地部署选型避坑原则·本地部署的典型方案
阿里云大数据AI技术2 小时前
阿里云 Milvus 知识库开启邀测,助力客户构建企业级 Agent
人工智能·agent
正经教主2 小时前
AI提示词工程(进阶)第7课:角色设定与身份模拟
人工智能
lucky_syq2 小时前
第3篇 · S1·上:什么是大语言模型 + Transformer 架构深讲
人工智能·语言模型·架构·transformer
小玮看世界2 小时前
当“安全“变成“教训“:《拟人化暂行办法》时代,AI护栏的过度拒答之困与破局
大数据·人工智能
本当迷ya2 小时前
8月17日最新 Codex gpt-5.6-sol 开启 1M 上下文封印
人工智能
jinggongszh3 小时前
使用AI协同开发产品条码规则功能——从“理解方案、原型、接口文档”到“落地真实前端代码”
前端·人工智能·mes系统·mes工程架构