)
系列前置博客STM32保姆级入门教程第1章零基础必看从认知到实战全解析STM32CubeIDE配置STM32F103RCT6点亮PA0 LEDJ-Link下载教程本文核心解决新手“Hex文件找不到、调试器切换报错、点灯代码难维护”三大痛点掌握Hex文件自定义生成、ST-Link/J-Link无缝切换最终实现LED闪烁点灯一、前置准备1. 软件准备已安装STM32CubeIDE2024/2025版并完成基础环境配置已安装ST-Link、J-Link官方驱动确保电脑能识别调试器前置工程已完成STM32F103RCT6 PA0引脚GPIO输出模式基础配置无基础工程可参考系列第二篇。2. 硬件准备硬件器材规格与说明STM32开发板STM32F103RCT6核心板PA0引脚接LED低电平点亮调试器ST-Link、J-Link辅助工具USB数据线、SWD杜邦线看是否需要外置LED、万用表可选验证电平二、新建STM32CubeIDE工程零基础也能会步骤1启动软件并选择工作空间【对应截图1STM32CubeIDE启动与工作空间选择界面】双击打开STM32CubeIDE首次启动弹出工作空间选择窗口选择全英文、无空格、无特殊符号的文件夹如F:\Stm32Studio勾选Use this as the default and do not ask again点击Launch启动软件。步骤2新建STM32工程点击顶部菜单栏File→New→STM32 Project弹出芯片选择窗口。在Commercial Part Number搜索框输入STM32F103RCT6选中对应芯片后点击Next。划重点 记得把第二个红框里面的星星点亮收藏起来下次就可以直接选择不用搜索工程配置页面按以下要求填写Project Name填写STM32F103RCT6_LED_Blink禁止中文/空格/特殊符号Project Location默认继承工作空间路径无需修改其余选项保持默认点击Finish。弹出切换透视图提示勾选Remember my decision点击Yes进入CubeMX配置界面。步骤3基础配置GPIO时钟调试接口左侧System Core→SYSDebug下拉选择Serial WireSWD模式必配否则芯片锁死。左侧System Core → RCCHSE下拉选择Crystal/Ceramic Resonator外部晶振无外部晶振则选Internal RC Oscillator。引脚视图找到PA0右键选择GPIO_Output左侧System Core→GPIO选中PA0配置参数GPIO output levelHigh初始熄灭GPIO modeOutput Push Pull推挽输出Pull-up/Pull-downNo pull-up and no pull-downUser LabelLED1别名方便代码调用。顶部Clock ConfigurationHCLK输入72回车自动配置时钟树无红色报错即成功。点击右上角保存图标弹出提示点击Yes等待代码生成完成后进入代码编辑界面。三、Hex文件自定义生成配置精准找到烧录文件新手常见痛点编译后找不到Hex文件、默认路径太深、想自定义文件名/保存位置以下是全流程配置步骤1开启Hex文件生成默认关闭必配右键点击工程名STM32F103RCT6_LED_Blink→ 选择Properties打开工程属性窗口。在左侧列表中找到C/C Build→Settings→ 右侧选择Tool Settings→MCU Post build outputs勾选以下选项核心Convert to Intel Hex file (-Oihex)生成Intel格式Hex文件通用烧录格式Convert to binary file (-Obinary)可选生成bin文件兼容更多烧录工具点击Apply and Close保存配置。步骤2自定义Hex文件保存路径/文件名可选新手友好仍在C/C Build→Settings→MCU Post build outputs界面在Artifact name有的版本叫 Output file name输入框中自定义文件名如STM32F103RCT6_LED_Blink若想修改保存路径可在Build Artifact中调整Output directory建议新手先使用默认路径避免配置错误。步骤3编译验证Hex文件生成点击顶部工具栏锤子图标Build编译工程控制台显示Build Finished. 0 errors, 0 warnings.即为成功打开工程目录 →Debug文件夹可看到生成的xxx.hex文件与自定义文件名一致。四、ST-Link/J-Link调试器切换全流程附避坑核心需求同一工程兼容ST-Link和J-Link两种调试器无需重新创建工程只需切换调试配置前提硬件连接规则调试器引脚STM32核心板SWD引脚备注3.3V3.3V/VCC禁止接5V否则烧坏芯片/调试器SWDIOSWDIO/DIO数据引脚接反无法通信SWCLKSWCLK/CLK时钟引脚接反无法通信GNDGND共地必须接步骤1配置ST-Link调试器默认配置点击顶部菜单栏Run→Run Configurations...打开运行配置窗口左侧选择STM32 Cortex C/C Application→ 右键工程名 →New Configuration新建配置右侧切换到Debugger选项卡Debug probe选择ST-Link (ST-LINK GDB server)Interface选择SWD必选JTAG模式占用引脚多新手不用Reset mode选择Software system reset烧录后自动复位运行点击Apply保存命名为ST-Link_Config方便区分。步骤2切换为J-Link调试器【对应截图15J-Link调试配置界面】仍在Run Configurations窗口复制上述ST-Link配置右键ST-Link_Config→Duplicate命名为J-Link_Config切换到Debugger选项卡Debug probe选择SEGGER J-LinkInterface仍选择SWDDevice name填写芯片型号如STM32F103RC必须精准否则识别失败点击Apply保存配置。步骤3调试器切换使用烧录时点击顶部工具栏绿色播放图标旁的下拉箭头选择对应的配置ST-Link_Config/J-Link_Config点击播放图标软件自动识别对应调试器并烧录程序无需重复接线只需替换调试器硬件。五、LED闪烁点灯完成工程、Hex、调试器配置后编写优化版闪烁代码解决基础版代码“难维护、改引脚要全改”的问题1. 闪烁核心原理LED闪烁本质是**“电平翻转延时”**PA0引脚交替输出低电平亮、高电平灭中间加入固定时长延时形成视觉上的闪烁效果。优化版思路用宏定义封装引脚和电平逻辑代码可读性更高、更易维护。2. 优化版闪烁代码编写附截图【对应截图17main.c文件代码编辑界面】打开工程Core→Src→main.c文件在/* USER CODE BEGIN Includes */下方添加宏定义封装引脚和电平/* USER CODE BEGIN Includes */// 封装LED引脚和电平逻辑后期修改仅需改此处#defineLED1_PORTGPIOA#defineLED1_PINGPIO_PIN_0#defineLED1_ONGPIO_PIN_RESET// 低电平点亮#defineLED1_OFFGPIO_PIN_SET// 高电平熄灭/* USER CODE END Includes */在while(1)主循环中写入优化版闪烁代码/* USER CODE BEGIN WHILE */while(1){// 点亮LEDHAL_GPIO_WritePin(LED1_PORT,LED1_PIN,LED1_ON);HAL_Delay(500);// 延时500ms// 熄灭LEDHAL_GPIO_WritePin(LED1_PORT,LED1_PIN,LED1_OFF);HAL_Delay(500);// 延时500ms/* USER CODE END WHILE *//* USER CODE BEGIN 3 */}/* USER CODE END 3 */⚠️ 关键说明宏定义LED1_ON/LED1_OFF对应硬件电路的点亮逻辑若你的LED是高电平点亮只需修改这两个宏定义HAL_Delay()是毫秒级延时函数参数越大闪烁越慢例如改为1000则1秒亮、1秒灭。六、实战验证多调试器烧录闪烁效果测试1. 编译烧录验证点击顶部工具栏锤子图标Build重新编译工程确保无报错选择任意调试器配置ST-Link/J-Link点击播放图标烧录程序烧录完成后开发板PA0引脚的LED会以1秒为周期循环闪烁验证成功。STM32保姆级入门教程第3章从新建工程到LED闪烁点灯2. 手动烧录Hex文件备用方案若调试器直接烧录失败可手动烧录Hex文件ST-Link使用ST-Link Utility软件选择File→Open File导入Hex文件 →Program Verify烧录J-Link使用J-Flash软件选择芯片型号 → 导入Hex文件 →Auto programming烧录。七、常见问题排查90%新手必踩的坑故障现象排查优先级解决方法生成Hex文件后提示“文件为空”11. 未勾选Convert to Intel Hex file2. 工程编译有报错需先解决编译错误3. 自定义路径无写入权限换默认路径切换J-Link后提示“Device not found”11. 检查J-Link驱动是否安装成功2.Device name填写错误如STM32F103RC而非STM32F103RCT63. SWD接线是否接反切换调试器后烧录成功但LED不闪21. 延时函数参数过小如10ms肉眼无法识别2. 宏定义电平逻辑与硬件不符3. 芯片复位模式配置错误改为Software system reset新建工程编译报错21. 工程名/路径含中文/空格2. 时钟树配置错误HCLK超过芯片最大主频3. 固件包未完整安装八、核心知识点总结新建工程关键必须配置SWD调试接口和时钟树PA0引脚设为推挽输出模式避免芯片锁死或功能异常Hex文件生成STM32CubeIDE默认不生成Hex文件需手动勾选Convert to Intel Hex file自定义文件名/路径更便于管理调试器切换同一工程可创建多个调试配置ST-Link/J-Link核心区别是Debug probe选择和J-Link需填写精准的Device nameLED闪烁优化用宏定义封装引脚和电平逻辑后期修改无需改动核心代码提升可维护性。原创不易如果本文对你有帮助欢迎点赞、收藏⭐、关注➕有任何问题都可以在评论区留言我会一一回复本文所使用的工程文件已上传至配套资源中如有需要可自行下载。也可关注博主后留言获取。欢迎关注获取更多技术干货公众号BackCatK Chen文章末尾可以扫码关注资料包亮点这份资料包涵盖了从硬件电路设计到STM32单片机开发再到Linux系统学习的全链路内容适合不同阶段的学习者硬件基础包含硬件电路合集、硬件设计开发工具包帮你打牢底层基础。STM32专项从环境搭建、开发工具、传感器模块到项目实战还有书籍和芯片手册一站式搞定STM32学习。C语言进阶C语言学习资料包助你掌握嵌入式开发的核心语言。面试求职嵌入式面试题合集提前备战技术面试。Linux拓展Linux相关学习资料包拓宽技术视野。资料包目录00-STM32单片机环境搭建01-硬件电路合集02-硬件设计开发工具包03-C语言学习资料包04-STM32单片机开发工具包05-STM32传感器模块合集06-STM32项目合集07-STM32单片机书籍芯片手册08-Linux相关学习资料包