ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

按下复位键,单片机为何从头再运行?

按下复位键,单片机为何从头再运行? 按下复位键单片机为何从头再运行本文为教学接线与设计预期尚无实物测量记录使用 NUCLEO-F030R8。问题小灯正在按程序闪烁按住复位键后它停了松开又从第一步开始。这不是断电也不是擦掉已下载的程序。今天只看复位线怎样让芯片停下再运行原来的程序。演示使用开发板自带黑色 B二复位键。物件动作把芯片想成读程序卡的小熊。它拿着停止旗和秒表按下 B二旗子从板边送到复位门秒表停住松开按钮旗子收回从第一张卡重新读起。回到电路旗子是复位脚变低卡片是原来的程序不是重新烧录。真实连接NUCLEO-F030R8 的黑色 B二按钮已连到芯片 NRST按下把它拉向地。芯片内部有弱上拉松开后回高。灯是另一支路D六也就是 PB十经一千欧电阻到 LED 正极负极回板卡地。按钮不直接给灯供电。原因与结果NRST 是低电平有效的复位脚。按住时芯片不继续执行闪灯循环输出脚回到复位状态松开后重新从入口运行。程序仍在闪存里片上工作状态却重新初始化。若先前数到第六步释放后不是第七步而是第一步。验证断电核对电阻、灯正负极和公共地再运行每秒翻转小灯的教学程序。设计预期按住不再计数松开后从零开始。用万用表量 NRST 对地电压看按下低、松开高想看释放瞬间用示波器同时看 NRST 和 D六。边界复位只重新启动芯片不保证外接设备断电或安全别拿它当整机断电开关。程序若有启动故障松开后仍可能卡住。这里仅是板载 B二与低压小灯换板子、按钮或负载须重查原理图和额定值。片中亮灭只是设计预期。先回答一个误解复位不是重新烧录也不是断电本例只使用 ST NUCLEO-F030R8 板上现成的黑色 B2 RESET 按钮观察目标芯片 STM32F030R8T6 的复位与一只外接低压红灯。板卡保持正常供电程序预先写在非易失 Flash 中。按下 B2 时程序执行会停止松开后芯片重新从启动入口执行。这个过程不需要再把程序从电脑下载一次也不能把‘复位’误说成整个板卡电源消失。ST UM1724 的第 7.7 节把 B2 明确标为接 NRST 的 RESET 按钮B1 USER 是另外一个用户按钮两者不能交换。按一个可画出来的动作理解小熊手握一面红色停止旗从 B2 按钮的桌边走到标为 NRST 的门按钮按住时旗子压在门口它手里的秒表也停在原刻度。按钮放开小熊收旗把原来的程序卡翻回第一页从第一步重新读。回到电路红旗对应 NRST 低电平收旗对应内部弱上拉使 NRST 回高秒表和卡片分别对应本例的软件计数变量与已经在 Flash 中的程序。图中的小熊不是一个真实传感器B2 到 NRST 也不是一条要用户额外焊接的外接线。从官方资料逐节点核对这幅图ST MB1136 C03 原理图第 3 页画出板载 B2 在 NRST 网络上目标芯片引脚表给出 STM32F030R8 LQFP64 的 NRST 为第 7 脚。ST 芯片数据手册 DS9773 把 NRST 定义为低有效、带内置弱上拉的双向复位引脚。ST RM0360 第 7.1.2 节说明外部使 NRST 保持低电平会产生系统复位系统复位让相关寄存器回到复位值不等于改写用户 Flash。松开按钮后内部弱上拉使这个节点回高复位解除随后是否点亮 LED 由实际程序决定。本文不宣称任何固定的释放等待毫秒数板上电容和具体电气波形应以真实测量为准。灯是独立输出支路。NUCLEO-F030R8 的 CN9 D6 对应 PB10D6/PB10 接 R1 一千欧R1 另一端接 Kingbright WP710A10ID 红色 LED 阳极 ALED 阴极 K 回 CN6 GND。这样 GPIO 输出高时若实际电平、电流能力及 LED 极性均正确电流才可能经限流电阻、LED 回地。把三点三伏除以一千欧得到 3.3 mA 是忽略 LED 压降的电阻电流上界不是本机电流实测。B2 本身既不串在 LED 回路也不承担灯的工作电流。板卡的稳压、去耦、BOOT 配置和 ST-LINK 已在成品板上本篇只放大与复位有关的内部节点和需外接的灯支路不能把局部图当一块裸芯片的完整最小系统接线图。为什么看到的是‘第一步’不是继续上一秒假定教学程序每收到一次可靠的‘一秒节拍’就翻转 PB10并让软件步数加一。它已经数到六时按住 B2NRST 被拉低芯片不再执行循环GPIO 回到复位状态。释放 B2 后处理器重新取启动代码程序把步数初始化成零然后等待下一次节拍。下一次节拍让步数变成一并不是七。这里的‘每秒’只是为听懂顺序所选的软件演示芯片时钟、定时器配置与中断响应必须在真实固件里实现。随文 C11 小程序只复算高低、释放和计数状态不是能直接烧进 STM32 的启动文件。也不要把‘按键期间灯灭’写成对所有硬件的绝对保证。复位状态下 PB10 不再由前一个程序维持高电平但外接电路是否亮还取决于回路和其他连接本例的 PB10→R1→LED→GND 简单支路设计预期会熄灯。若换成低电平触发的继电器模块或自带电源设备复位后它的状态可能完全不同必须另行设计失效安全状态。外部负载不会因 MCU 复位而必然断电。测量顺序先查电平再查软件入口第一步断电核对 LED 极性、限流电阻、D6 与公共地不要用电阻档在带电板上测试。第二步在安全供电状态下将万用表黑表笔接板卡地、红表笔接可以可靠接触的 NRST 测试节点设计预期是松开为高、按住趋近地。不要用表笔短接相邻针脚。第三步若需查看瞬间变化示波器 CH1 看 NRSTCH2 看 D6两路地夹都接板卡公共地观察释放后的程序输出从初始相位重来而非凭 LED 肉眼印象推断寄存器值。万用表通常无法分辨短暂复位边沿所以不能用‘表上没看到波形’断言按钮无效。本项目没有实物板卡、原始电压、示波器波形或真正录入的按钮时间戳文中的按住低、松开高、步数重置都是来源约束下的设计预期。若按 B2 后不能再启动先查供电、复位节点是否一直被拉低、启动配置与固件初始化若灯一直不亮还应单独查 PB10 配置和 LED 支路。换板卡修订版、外接复位源或其他 MCU 时重新查该板原理图不能照搬这个 B2 节点更不能拿复位键当整机电源或安全急停。逐线接线清单NUCLEO-F030R8 板载 B2 RESET 按钮 → 板载 NRST 网络与公共地按下使 NRST 拉低使用板卡已有按钮不另加虚构外部按钮板载 NRST 网络 → STM32F030R8T6 NRSTLQFP64 pin 7低有效外部复位输入内部弱上拉使释放后回高NUCLEO CN9 D6/PB10 GPIO → R1 1 kΩ 至 LED 阳极 A复位后程序控制的独立低压灯支路LED 阴极 K → NUCLEO CN6 GNDLED 回路与 NRST 按钮共用板卡地万用表红/黑表笔 → NRST/公共 GND或示波器 CH1验证按住低、松开高仅在真实测量时记录数值示波器 CH2 探头/地夹可选 → D6/PB10 输出节点/公共 GND与 NRST 同时核对设计时序不将探头画成串联元件计算与实施边界ST UM1724 Rev17 §7.7板载 B2 RESET 接 NRSTB1 USER 是不同按钮不能混淆ST MB1136 C03 原理图第3页板载 B2 位于 NRST 网络目标 STM32F030R8 的 NRST 为 LQFP64 pin7图中既有上电/调试支持又有按钮本视频只展开相关复位节点ST STM32F030 数据手册 DS9773 Rev5NRST 为双向低有效复位脚、带内部弱上拉RM0360 Rev5 §7.1.2外部 NRST 为低时生成系统复位ST UM1724 表11D6PB10该 LED 支路是本例外接低压教学电路并非宣称板载用户 LED 接在 PB10一秒翻转及按键时刻是本例教学程序和演示输入没有实板测量记录不把高低电平、波形或灯的亮灭写成实测复位使程序重新开始不等于清除非易失 Flash且不保证外部负载进入安全状态这些参数和数值是本例选择或可复算计算实际测量前应先检查电源极性、公共地、元件额定值、仪器探头连接。完整可运行的核心算例与验收以下 C11 程序可在电脑上用 C 编译器单独编译运行用来复算状态或数值它不是已配置 GPIO、ADC、定时器和驱动的开发板固件。移植到实板时应按前述接线配置外设、检查读取错误并另做实测。#includestdbool.h#includestdio.h/* 教学状态演算不冒充 STM32 的启动文件或 GPIO 固件。 */typedefstruct{unsignedstep;bool reset_held;bool led;}Demo;staticvoidevent(Demo*s,bool nrst_low,bool one_second_tick){if(nrst_low){s-reset_heldtrue;s-step0u;s-ledfalse;return;}if(s-reset_held){s-reset_heldfalse;s-step0u;s-ledfalse;}if(one_second_tick){s-step;s-led!s-led;}}intmain(void){Demo s{0u,false,false};constbool low[]{false,false,true,true,false,false};constbool tick[]{true,true,false,false,false,true};for(unsignedi0u;i6u;i){event(s,low[i],tick[i]);printf(%u: NRST %s, step %u, LED %s\n,i1u,low[i]?LOW:HIGH,s.step,s.led?ON:OFF);}return0;}验收时同时记录输入、关键节点电压或波形、程序输出若发现传感器通信失败、输入超出允许范围或波形明显异常应停止并排查。官方资料https://www.st.com/resource/en/user_manual/um1724-.pdfhttps://www.st.com/resource/en/schematic_pack/mb1136-default-c03_schematic.pdfhttps://www.st.com/resource/en/datasheet/stm32f030r8.pdfhttps://www.st.com/resource/en/reference_manual/dm00091010-stm32f030x4x6x8xc-and-stm32f070x6xb-advanced-armbased-32bit-mcus-stmicroelectronics.pdfhttps://www.kingbrightusa.com/images/catalog/spec/WP710A10ID.pdf
返回列表