完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
代码重现主要是STM32H750给ESP32长期发数据的情况下发生:步骤如下:平板给esp32发数据:PagePara=0x06EAFF00。
esp32解析成功输出[0x06 0xEA 0xFF 0x00 ] stm32H750发来数据:FE 03 00 C8 00 02 51 FA(Modbus) esp32回复stm32H750数据:FE 03 04 06 EA FF 00 95 B0(Modbus) Stm32H750 将长期发送类似下面的数据 FE 10 00 EA 00 06 0C 00 04 A8 5D 00 00 00 2A 00 07 00 4C 7E C1 其中可能还会收到平板发来的WF=?指令,这是esp32只需要回复WF=OK 一般收到FE 10 00 EA数据5-6条时,就一定发生Task watchdog got triggered.故障, 以下就是这个log记录:烦请指导如何定位需要增加延时函数的地方或排查故障的方法。 如需要提交代码,请指导需要哪段代码?
|
|
相关推荐
1个回答
|
|
|
"Task watchdog got triggered" 是指任务监视器(task watchdog)被触发,通常是因为某个任务没有在预定的时间内重置监视器。这可能是由于任务在执行过程中被阻塞,或者任务处理时间过长,导致无法及时重置监视器。
针对你的问题,以下是一些可能的解决方案: 1. **优化任务处理时间**:检查ESP32的任务处理逻辑,确保任务能够快速完成。如果任务处理时间较长,可以考虑将任务分解为多个子任务,或者使用中断来处理数据。 2. **增加任务优先级**:如果ESP32在处理STM32H750发送的数据时,任务优先级较低,可能会导致任务被其他高优先级任务抢占。可以尝试提高任务的优先级,确保任务能够及时执行。 3. **使用中断处理数据**:如果ESP32在处理STM32H750发送的数据时,任务被阻塞,可以考虑使用中断来处理数据。这样,当STM32H750发送数据时,ESP32可以立即处理,而不会阻塞其他任务。 4. **调整任务监视器超时时间**:如果任务确实需要较长时间来处理数据,可以考虑增加任务监视器的超时时间。这样可以避免任务监视器过早地触发。 5. **检查数据接收和发送逻辑**:确保ESP32在接收和发送数据时,逻辑正确。例如,检查Modbus协议的实现是否正确,以及数据包的格式是否符合预期。 6. **使用调试工具**:使用调试工具(如ESP-IDF的调试器)来跟踪任务的执行过程,找出导致任务监视器触发的原因。这可以帮助你更好地理解问题,并找到解决方案。 7. **考虑使用RTOS**:如果ESP32的任务较多,可以考虑使用实时操作系统(RTOS)来管理任务。RTOS可以帮助你更好地管理任务的优先级和调度,从而避免任务监视器触发。 8. **检查硬件连接**:确保ESP32和STM32H750之间的硬件连接正确,没有导致数据传输错误或延迟。 通过以上方法,你应该能够找到导致"Task watchdog got triggered"的原因,并采取相应的措施来解决问题。 |
|
|
|
|
只有小组成员才能发言,加入小组>>
944 浏览 0 评论
1671 浏览 0 评论
请问一下我想用ESP8685直接替换ESP8266而不用写程序,可以让ESP8685直接通过之前ESP8266的外挂的flash运行程序吗
1330 浏览 1 评论
1233 浏览 1 评论
5015 浏览 2 评论
为blufi_device设置自定义名称,但是无法修改,为什么?
1252浏览 4评论
请问ESP32-S2-WROOM怎么获得ESP32-S2外接FLASH的唯一序列号?
927浏览 3评论
2334浏览 3评论
ESP-IDF的VScode插件的build按钮点击会报错的原因?
2526浏览 3评论
ESP-Jumpstart例程中第5个工程:5_cloud连接报错是哪里的问题?
1051浏览 2评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 01:41 , Processed in 0.840682 second(s), Total 73, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
405
