完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
对于ESP8266,可以使用回调函数的方式来实现循环功能,而不是使用while(true)的死循环。可以使用ESP8266的定时器功能,设置一个定时器中断,每次定时器到达时间时就会触发回调函数,从而实现循环功能。这种方式可以充分利用ESP8266的高速处理器,而不会浪费处理器资源。以下是一个示例代码:全选const int LED_PIN = 2; // LED引脚号
hw_timer_t * timer = NULL; void IRAM_ATTR onTimer() { static bool ledState = false; digitalWrite(LED_PIN, ledState ? HIGH : LOW); ledState = !ledState; } void setup() { pinMode(LED_PIN, OUTPUT); // 初始化定时器 timer = timerBegin(0, 80, true); // 分频器80,计数器0 timerAttachInterrupt(timer, &onTimer, true); // 注册回调函数 timerAlarmWrite(timer, 1000000, true); // 定时器周期1秒 timerAlarmEnable(timer); // 启动定时器 } void loop() { // 在这里执行其他任务 } 在这个示例中,我们初始化了一个定时器,并注册了一个onTimer回调函数。在setup函数中,我们将定时器周期设置为1秒,并启动定时器。在loop函数中,我们可以执行其他任务,而不用担心while(true)这种死循环占用了处理器资源。每次定时器到达时间时,就会触发onTimer函数,从而实现循环功能。 |
|
|
|
|
只有小组成员才能发言,加入小组>>
453 浏览 0 评论
975 浏览 0 评论
1700 浏览 0 评论
请问一下我想用ESP8685直接替换ESP8266而不用写程序,可以让ESP8685直接通过之前ESP8266的外挂的flash运行程序吗
1357 浏览 1 评论
1248 浏览 1 评论
为blufi_device设置自定义名称,但是无法修改,为什么?
1272浏览 4评论
请问ESP32-S2-WROOM怎么获得ESP32-S2外接FLASH的唯一序列号?
939浏览 3评论
2370浏览 3评论
ESP-IDF的VScode插件的build按钮点击会报错的原因?
2556浏览 3评论
ESP-Jumpstart例程中第5个工程:5_cloud连接报错是哪里的问题?
1066浏览 2评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-9 06:32 , Processed in 0.571644 second(s), Total 42, Slave 35 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
492
