乐鑫技术交流
直播中

王桂英

7年用户 1308经验值
私信 关注
[问答]

ESP32S2可以在GPIO中断里进行WIFI的数据发送操作吗?

使用ESP32S2,SPI做从机,
SPI传输时,可以在my_post_trans_cb()里面执行spi_slave_transmit()进行数据接收吗?
(*目前都是在任务里循环执行spi_slave_transmit,如果不另加延时,总是提示看门狗出错 ,如果加延时,效率太低,技术人员说要有10ms以上的空闲时间,看门狗才能正常复位,这么长时间不可接受*)
可以在GPIO中断里进行WIFI的数据发送操作吗?

回帖(2)

黎锦荣

2024-6-12 09:43:03
 不可以,你应该在 spi_slave_transmit 里面设置超时时间,不可以设置为 0
举报

杨平

2024-6-12 16:36:49
ESP32S2是一款功能丰富的微控制器,具有Wi-Fi和蓝牙功能。在GPIO中断中进行Wi-Fi数据发送操作是可能的,但需要注意以下几点:

1. 中断处理函数应尽可能简短,避免在中断中执行耗时的操作。Wi-Fi数据发送可能会涉及到一些耗时的操作,因此在中断中直接进行数据发送可能不是最佳选择。

2. 可以考虑在中断处理函数中设置一个标志位,然后在主循环或者任务中检查这个标志位,如果需要发送数据,则进行Wi-Fi数据发送操作。这样可以避免在中断中执行耗时的操作。

关于SPI从机的问题,可以在my_post_trans_cb()回调函数中执行spi_slave_transmit()进行数据接收。但是,需要注意以下几点:

1. 确保my_post_trans_cb()回调函数的执行时间足够短,以避免影响SPI通信的实时性。

2. 如果在my_post_trans_cb()中执行spi_slave_transmit()导致看门狗出错,可以尝试优化代码,减少在回调函数中的操作。

3. 如果需要在SPI传输过程中保持看门狗的正常复位,可以考虑在适当的时机(例如在主循环或者任务中)手动复位看门狗。

总之,虽然在GPIO中断中进行Wi-Fi数据发送操作和在my_post_trans_cb()中执行spi_slave_transmit()是可能的,但需要注意避免在中断和回调函数中执行耗时的操作,以保证系统的稳定性和实时性。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分