可以使用多个dma解决
首先分析需求,传感器10ms固定,传输数据和显示想要尽量快。
为了减少cpu占用,串口可以开dma,存缓冲区一次性发送,发送频率可以不一定10ms。这里需要一个串口忙标志,完成一次发送后把忙标志清空。
主程序判断不忙且载入了定量完整数据后再次触发串口dma发送。
屏幕刷新用缓冲区+i2cdma,刷新的数据直接从缓冲区读出进行显示刷屏,这边也要一个刷屏忙标志,主程序判断刷屏不忙且完成了一次载入数据后就可以调起刷屏了。
这里面串口的dma总线优先级可以开的高一些,因为刷屏慢了人也看不大出来,一般来说50ms~100ms的数据刷屏人看着就已经很快了。
传感器中断读数据只需要读出来放一个变量里面就可以。剩下的交给主程序去判断和使用。主程序内就只有判断标志位和调起dma。
这样可以保证不会占用很多的cpu。并且刷屏和串口发送超过10ms也不会被中断打断了。
乘风飞扬 发表于 2023-10-19 17:57
串口发送可以考虑用队列模式,在中断里发送。
帮给工程看一下,这个报错怎么都找不到问题,怎么才能消除掉?
页:
1
[2]