打印

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

[复制链接]
5067|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

粉丝