串口接收用RTOS中任务轮询接收会丢数据吗?
项目中用到 串口通讯 与 I2C总线上主从机通讯,因为考虑到I2C通讯很可能会被串口接收中断给打断,
所以正在考虑 串口接收从原来的接收中断方式 改为 在FreeRTOS中独立一个任务轮询接收数据,波特率是115200
考虑到可能会丢失串口数据,希望有这么干过的大佬能指点一下,先谢谢各位!
会。。。 上了操作系统一般建议用DMA的,I2C主机可以用DMA,串口可以用DMA+空闲中断,这样不会占CPU时间。 Dandjinh 发表于 2020-8-14 08:54
上了操作系统一般建议用DMA的,I2C主机可以用DMA,串口可以用DMA+空闲中断,这样不会占CPU时间。 ...
有些型号的I2C有一些事件处理,这些处理需要用高优先级中断,所以这部分还不能依靠DMA。只有数据收发的时候是可以用DMA帮助处理的 轮询肯定会丢数据的。建议I2C和串口都用中断。发送可以考虑DMA,但是接收的时候,需要考虑接收的数据长度问题来判断DMA和中断方式哪一种更合适。
页:
[1]