当前位置: 代码迷 >> 单片机 >> can数据接收流程解决办法
  详细解决方案

can数据接收流程解决办法

热度:257   发布时间:2016-04-28 14:43:02.0
can数据接收流程
cpu : stm32
用的是cpu内部的CAN控制器,用的是库函数编程。

数据接收要求9个报文(用滤波器处理),设了接收中断、满中断、溢出中断。

10ms读取数据一次。

接收中断处理流程:中断响应后,若是接收中断,读取fifo中的数据,释放fifo。若是满中断或溢出中断读3次数据,释放fifo。

CAN线程:10ms 有数据读出,则处理数据,没有则返回。

现在的问题,常会漏数据,报文的发送周期10ms~5s.

在can数据接收或中断处理上是否可以优化。改善数据接收效率或可以加大读取数据周期。

我也考虑了另一个方案,就是每次采样读出9个报文后再退出流程。

请教大牛们!!
------解决思路----------------------
fifo中的数据读到一个riingbufer 里, 然后新建一线程专门处理ringbufer
  相关解决方案