打印

关于stm32的can的一些棘手问题,期待大家回答

[复制链接]
7265|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sxfzero|  楼主 | 2012-2-15 09:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1.在can接收邮箱产生满中断 和溢出中断时候通常应该怎样处理,保证不丢帧,同一种can中断会不会嵌套进入
2.我试图在can接收中断内部关闭can接收中断,但是中断关闭不了,依然会不断的进入中断,这是为什么

3.我采用中断方式接收。
  轮巡方式发送,在循环中首先判断有几个空的发送邮箱,然后发送相应数量的can帧。
  但是在有大量数据帧接收时,导致发不出去can帧,还会产生错误警告,被动错误
  在产生错误警告和被动错误中断时通常要如何处理比较好,保证总线正常通讯。

4.如果采用查训方式接收,能不能不丢帧。
5.最中的目的,在固定的波特率下,在不丢帧的情况下,实现最高的吞吐量和最小的发送与接收延时。一直没有找到合理的方案。
沙发
sxfzero|  楼主 | 2012-2-20 21:20 | 只看该作者
顶起

使用特权

评论回复
板凳
dongjiajia| | 2012-7-17 11:53 | 只看该作者
找到解决方法了,解决了就分析一下

使用特权

评论回复
地板
airwill| | 2012-7-18 06:16 | 只看该作者
同一种can中断会不会嵌套进入?   
不会, 但是你可以用 while (条件) 的办法处理完所有数据再返回.

有大量数据帧接收时,导致发不出去can帧?
因为 CAN 是半双工类型, 所以不应该让总线上出现过大的负荷

使用特权

评论回复
5
sjnh| | 2012-7-18 09:21 | 只看该作者
溢出,说明已经有帧丢失了; 要想不丢帧,只能是接收处理快点,没用其它方法(把ID过滤设置好,不要接收那些没用处的帧);

4.如果采用查训方式接收,能不能不丢帧。在于你查询速度,不建议用,除非你程序本身就没有别的事做;建议还是用中断方式;

同意楼上,所以不应该让总线上出现过大的负荷,如果你实际经常会出现这种现象,那应该考虑你的通信方案是否合理;

使用特权

评论回复
6
damiaa| | 2012-7-18 10:06 | 只看该作者
中断里接收到数据就放到一个缓冲然后退出。中断外再去处理这些数据。中断只是从CAN接收数据放到缓冲。不会溢出。中断是很快的。比CAN通讯速度快多了。中断里进本中断是不会的。楼主太担心了。没必要。

使用特权

评论回复
7
shaomingxin1985| | 2014-5-15 19:15 | 只看该作者
好帖,顶起。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

3

帖子

1

粉丝