请教香版主一个关于stm32f103的can接收fifo问题!

[复制链接]
5912|2
 楼主| a7_cool 发表于 2009-1-20 18:27 | 显示全部楼层 |阅读模式
在参考手册中,对于CAN的两个接收FIFO的使用上,没有很详细的说明,请问,如果使能can的两个接收fifo时,并且cpu问能及时将数据帧读出时:
1、是否总是将最先接收到的数据帧存入FIFO0,FIFO0满后再存入FIFO1?
2、由于两个FIFO被分配了两个不同的中断向量,而FIFO0的优先级比FIFO1高,那么势必先响应FIFO0的中断,假如在读取FIFO的数据后,马上又有一帧数据传入(且此时FIFO1未满),那么这帧数据是存入FIFO0还是FIFO1?
3、如果是存入FIFO0的话,那岂不是所接受数据(在时间上)接收顺序是不确定的,有什么好的建议处理这个问题么?
香水城 发表于 2009-1-21 08:42 | 显示全部楼层

FIFO是与接收邮箱配对,而接受邮箱与信息ID对应

2个FIFO不会混用。

至于中断优先级的问题,要根据你的ID优先级确定。

相对于STM32的速度,CAN的传输速度是很慢的,如果你的程序来不及处理CAN的数据,这样的程序基本上是不合理的。
 楼主| a7_cool 发表于 2009-1-21 09:47 | 显示全部楼层

版主,我的这个问题是有点钻牛角尖的成份!

您说的接收邮箱与信息ID配对,当两个FIFO的过滤组配置不一样时的情况。但是如果两个FIFO的过滤组配置一样呢?我也知道,相对于STM32的速度,CAN的传输速度是很慢的,还有你说的中断优先级我也知道,而且我在我实际的应用中也就只用了一个FIFO0,也满足我了的应用(我还研究了MDK的RL-CAN的代码,里面也是只用了一个FIFO)。我只是弄明白,STM32的两个接收FIFO设计设计成这种形式所体现的优越性是什么,什么情况下,怎么使用这两个FIFO才能将这种优越性发挥出来?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

46

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部