STM32
直播中

最强海贼王

8年用户 1390经验值
擅长:MEMS/传感技术
私信 关注
[问答]

STM32F407的CAN通讯接收长数据,用keil调试时每次进中断FIFO就已经数据溢出了怎么解决?

我想使用STM32F407的CAN通讯来接收六维力传感器的力信息,但是这个信息长度有31个字节,当STM32发送请求力信息的命令时,传感器采集卡一次性就发出4帧的数据帧,使接收FIFO溢出。想利用CAN_IT_RX_FIFO0_MSG_PENDING中断在接收到第一帧数据时就进中断,但是用keil调试的时候每次进中断时FIFO就已经数据溢出了,求大神给个解决思路。

回帖(1)

孙婷婷

2024-3-12 15:10:27
楼主是想用空余的FIFO做硬件缓冲,避免数据很快溢出。

但是在调试时是不能用中断断点,因为接收的数据不会因断点而停下。

可以测试一下从中断发生到FIFO释放大约多长时间,是否来得及。
如果来不及的话,释放一个FIFO后,要即可查查是否FIFO中此时又收到数据以及避免再次中断。
此时在中断服务函数里要小心处理。
举报

更多回帖

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