首页/新闻资讯/正文详情

ESP32踩坑实录:定时器让灯一直闪,但程序怎么停不下来了?

发布时间:2026/11/7 8:29:17 来源:云帆数科 栏目:资讯中心
ESP32踩坑实录:定时器让灯一直闪,但程序怎么停不下来了?
注本文排版和原理解析部分借助了 AI 辅助整理但所有代码均在本地 Thonny ESP32 开发板实测跑通。踩坑不易记录分享大佬轻喷~【在这里插入你的图片ESP32开发板亮蓝灯的照片】最近在折腾物联网开发用 ESP32 跑 MicroPython。前几天刚用while True死循环搞定了按键控制 LED但这有个致命缺点CPU 一直在原地空转死等极其浪费资源。今天准备进阶一下用 ESP32 内部的硬件定时器Timer来实现一个新功能让板载的蓝灯每隔 1 秒钟自动亮灭交替一次并且在终端打印出当前是第几秒。【踩坑现象】代码写得很顺利点运行后板子上的蓝灯确实完美地一秒闪一次终端也在疯狂打印递增的数字。但是当我想让程序停下来的时候问题出现了按 Thonny 上的红色“停止”按钮程序根本停不下来甚至偶尔按了停止后再次点运行还会直接报错卡死。【踩坑原因】查了资料才明白罪魁祸首是Timer的硬件级别。之前用的while循环是软件级别的点停止就能强行打断。但硬件定时器是底层外设它一旦跑起来就像定了一个永远重复的闹钟。普通的停止指令掐不断它导致底层的硬件资源一直被占用无法释放。【解决办法加上“资源释放”保护罩】为了让程序能被我们人类安全控制我们必须加一个try...except语句来捕获手动停止动作CtrlC并且在程序退出前手动把定时器关掉tim.deinit()。【修复后的完整代码】pythonfrom machine import Pin, Timer import time led Pin(2, Pin.OUT) # 假设蓝灯在 2 号引脚 Counter 0 # 定义回调函数定时器时间一到自动执行这里 def fun(tim): global Counter Counter Counter 1 led.value(Counter % 2) # 核心取余操作实现 1、0 交替闪烁 print(f定时器触发第 {Counter} 秒) # 实例化硬件定时器 0 tim Timer(0) # 周期 1000ms1秒周期性触发回调 fun 函数 tim.init(period1000, modeTimer.PERIODIC, callbackfun) # 核心保护机制 try: while True: time.sleep(1) # 主程序进入休眠把 CPU 让给底层干活 except KeyboardInterrupt: print(程序被手动停止了) tim.deinit() # 极其关键的一步关闭定时器释放硬件资源【运行结果】现在程序受控了。每次点击运行灯都会稳定闪烁。当我按下CtrlC或者点击停止时终端会立刻打印出“程序手动停止了”板子安静下来硬件资源完美释放再次点击运行也不会报错了。【踩坑记录小结】硬件定时器Timer非常强大它是“非阻塞”的可以让我们在不写死循环的情况下实现多任务。玩底层硬件开发一定要有“资源回收”意识。用完的引脚、打开的文件、开启的定时器一定要记得deinit()或者close()否则后患无穷。记录一下踩坑过程希望能帮到同样刚入门 MicroPython 的同学

相关推荐

具身智能大脑混战:9家头部公司跑出了4条路,「类脑架构」初露锋芒
具身智能大脑混战:9家头部公司跑出了4条路,「类脑架构」初露锋芒

机器人大脑开始分道扬镳。 有句话是这么说的:人类与机器人的最大区别,是人类会预判。比如运动员,电竞选手等,有时候对手招还没出完,身体已经先动了。 但这个说法放在2026年的今天并不准确,如今&#xff0… · 2026/11/7 8:29:17

EtherCAT从入门到精通(6)
EtherCAT从入门到精通(6)

接前一篇文章:EtherCAT从入门到精通(5) 本文内容参考: 《工业以太网现场总线EtherCAT驱动程序设计与应用》 郇极 刘艳强 编著 北京航空航天大学出版社 工业以太网现场总线 EtherCAT 驱动程序设计及应用学习笔记_ethercat总线-CS… · 2026/11/6 6:39:16

Python3中协程
Python3中协程

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 6:39:16

贵州电工证考题题库内部消息:证书过期了不知道怎么复审延期?教你一步到位
贵州电工证考题题库内部消息:证书过期了不知道怎么复审延期?教你一步到位

贵州电工证考题题库内部消息:证书过期了不知道怎么复审延期?教你一步到位 证书过期了不知道怎么复审延期,你是不是也遇到过这种情况?别急,这波 内部消息 我先给你透个底——贵州电工证复审不是你想象的那么难,关键是你得知道流程,还得掌握… · 2026/11/7 8:28:38

迪庆高低压电工证良心建议:怎么报不被坑
迪庆高低压电工证良心建议:怎么报不被坑

迪庆高低压电工证良心建议:怎么报不被坑 不知道去哪报名怕被中介坑?迪庆高低压电工证虽然听起来是个技术活,但其实很多人连基本的流程都不清楚,更别提找对地方了。尤其是你这种想踏实干电工的人,千万别被那些打着“包过”“快速取证”的中介忽悠了。今天… · 2026/11/7 8:28:38

青岛低压电工证在哪考 上岗必备证书怎么拿
青岛低压电工证在哪考 上岗必备证书怎么拿

青岛低压电工证在哪考 上岗必备证书怎么拿 你有没有这种情况:明明已经准备好了电工的技术,可就是因为少了低压电工证,面试屡屡被拒?低压电工证不是可有可无的“附加项”,而是 上岗必备… · 2026/11/7 8:28:38

初级电工证问答题在哪考?证书过期了不知道怎么复审延期
初级电工证问答题在哪考?证书过期了不知道怎么复审延期

初级电工证问答题在哪考?证书过期了不知道怎么复审延期 证书过期了不知道怎么复审延期,这种情况相信不少电工朋友都遇到过。特别是在从事低压电工、高压电工等特种作业岗位时,一旦证书到期没及时处理,不仅影响日常工作,还可能被处罚甚至停职。那么,… · 2026/11/7 8:28:38

高压电工证美国考前押题怎么准备?实操考试心里没底怕挂科
高压电工证美国考前押题怎么准备?实操考试心里没底怕挂科

高压电工证美国考前押题怎么准备?实操考试心里没底怕挂科 实操考试心里没底怕挂科,尤其是对高压电工证美国这类特殊场景的报考者来说,每一次操作都可能影响最终结果。很多人在备考过程中,常常会担心自己能不能通过,尤其是在实操考试环节,稍有不慎就可能… · 2026/11/7 8:28:38

抚州高级电工证在哪里考 2026河南最新政策下怎么稳过实操考试
抚州高级电工证在哪里考 2026河南最新政策下怎么稳过实操考试

抚州高级电工证在哪里考 2026河南最新政策下怎么稳过实操考试 实操考试心里没底怕挂科?特别是像你这样打算考抚州高级电工证的,面对复杂的操作流程和严格的评分标准,多少都会有点紧张。2026年河南最新政策对特种作业证考试进行了更新,尤其是在实… · 2026/11/7 8:27:38

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:27:59

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:03

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 10:29:23

澳洲水电工证考试:证书过期了不知道怎么复审延期?电子证书怎么弄?
澳洲水电工证考试:证书过期了不知道怎么复审延期?电子证书怎么弄?

澳洲水电工证考试:证书过期了不知道怎么复审延期?电子证书怎么弄? 证书过期了不知道怎么复审延期?别慌,很多人在拿到【澳洲水电工证考试】的电子证书后,一不小心就忽略了复审时间,结果证书失效,工作受阻,甚至被单位追责。今天就从【澳洲水电工证考试… · 2026/11/7 0:00:41

电工作业提示版通过率揭秘:怎么考才能一次过?
电工作业提示版通过率揭秘:怎么考才能一次过?

电工作业提示版通过率揭秘:怎么考才能一次过? 怕考不过白交培训费?别急,今天我就从驻马店应届工程类毕业生的视角,带你全面了解电工作业提示版的考试流程、备考要点和真实通过率,帮你少走弯路、提高一次通过率。… · 2026/11/7 0:00:41

电工证年审报名千万别踩坑 外省证转过来要搞清这几点
电工证年审报名千万别踩坑 外省证转过来要搞清这几点

电工证年审报名千万别踩坑 外省证转过来要搞清这几点 之前考的证在外省能不能转过来?这个问题是很多电工从业者最关心的,特别是像你这样在商丘从事公路工程的人员,经常需要跨省流动,证书的 有效性 和 可迁移性… · 2026/11/7 0:00:41

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:27:59

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:03

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 10:29:23

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码