打印
[STM32F1]

STM32F103 CAN在中断中接收中出现位填充错误怎么解决

[复制链接]
4942|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tcc8073|  楼主 | 2015-8-28 17:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM32F103 CAN在中断中接收中出现位填充错误怎么解决,怎么避免出现这种错误,如果出现其他通讯错误怎么解决,请高手指点下,谢谢!
沙发
mintspring| | 2015-8-28 18:05 | 只看该作者
什么是填充错误啊,没有遇到过。

使用特权

评论回复
板凳
mmuuss586| | 2015-8-28 18:32 | 只看该作者
如果出现频率不够,那就清楚下错误标志;

出现错误后,数据重发

使用特权

评论回复
地板
tcc8073|  楼主 | 2015-8-28 19:55 | 只看该作者
我采用的是重新复位和设置CAN的方法,觉得有点慢,不知道楼上是怎么处理的,有没有例子可以参考下。

使用特权

评论回复
5
tcc8073|  楼主 | 2015-8-28 19:57 | 只看该作者
mintspring 发表于 2015-8-28 18:05
什么是填充错误啊,没有遇到过。

就是CAN接收出错的一种方式,如果互相高速发送和接收,就会出现。

使用特权

评论回复
6
豆腐块| | 2015-8-28 20:02 | 只看该作者
can里 没有校验吗

使用特权

评论回复
7
mintspring| | 2015-8-29 12:34 | 只看该作者
如果出现频率不够,那就清下错误标志;

使用特权

评论回复
8
mintspring| | 2015-8-29 12:36 | 只看该作者
谢谢各位给我讲解。

使用特权

评论回复
9
598330983| | 2015-8-29 12:56 | 只看该作者
一般我不会的我就用我会的替代。

使用特权

评论回复
10
yiyigirl2014| | 2015-8-29 13:30 | 只看该作者
CAn 还是比较难的一块

使用特权

评论回复
11
734774645| | 2015-8-29 15:19 | 只看该作者
can总线一般用在汽车电子的现场通信上。

使用特权

评论回复
12
xia00| | 2015-8-29 15:44 | 只看该作者
can可靠性比较难以控制,这是个难点。。

使用特权

评论回复
13
kangbidz| | 2015-8-29 16:34 | 只看该作者
can里 没有校验吗

使用特权

评论回复
14
tcc8073|  楼主 | 2015-8-30 07:33 | 只看该作者
其实说得简单点就是象串口一样,当二个串口互相对发数据的时候,接收和发送的过程就可能出现互相干扰的情况,只是这种情况下只要调整下,互相干扰的情况会改善或者消失,但是CAN这样发送的时候就会出现错误,这种错误需要处理,不处理的话就可能出现离线情况(这时接收和发送都无效),如果采用硬件自动处理的话,就会出现类似重启的情况;我是想请教,有没有哪位用什么方法做到能杜绝这种情况,希望提供个思路或者是例子。

使用特权

评论回复
15
IversonCar| | 2015-8-30 08:45 | 只看该作者
楼主详细说一下什么是填充错误吧

使用特权

评论回复
16
跟屁虫| | 2015-8-30 10:25 | 只看该作者
什么是填充错误啊

使用特权

评论回复
17
luckylyman| | 2015-9-16 09:14 | 只看该作者
请问楼主can通信问题解决了么?有没有好用的can通信程序给分享下啊,我的can还没调通正在找问题啊

使用特权

评论回复
18
jiaxinhui| | 2015-9-16 09:49 | 只看该作者
4-20mA模拟量采集(基于STM32 CAN 总线)https://bbs.21ic.com/icview-823024-1-1.html

使用特权

评论回复
19
tcc8073|  楼主 | 2015-9-16 14:40 | 只看该作者
这段时间忙,还没有去处理这件事情,不好意思

使用特权

评论回复
20
tcc8073|  楼主 | 2015-12-9 09:35 | 只看该作者
本帖最后由 tcc8073 于 2015-12-9 09:39 编辑

STM32F103 CAN应用的总结:
1.CAN的设置只要按照库提供的方法做就可以;
  2.请特别注意在屏蔽方式下,标准帧的11位是放在寄存器的21-31位;扩展帧的高18位放在3-20位;在实际应用的时候选定了标准帧方式时候只有21-31和0-2这14位是有效果的;同样在扩展帧模式下,0-31位都有效;请注意,0-2这3位在标准帧和扩展帧方式下都是参加比较的(设置的时候请按照设置的方式对应设置这1-2位,0位请设置为0);
3.远程帧这个我个人觉得没有什么用处,如果需要的话,在开始初始化的时候屏蔽掉32位寄存器的1位;
4.特别注意的是,在做寄存器设置的时候注意,扩展帧的时候给定的数据左移动3位再把低3位设置好后赋值,标准帧的时候给定的数据左移动21位再把低3位设置好后再赋值;
5.CAN虽然是稳定的,但是如果二个CAN总线设备互相高速发送接收数据,还是会有丢码现象,但是可以做到总线不会死掉,可以恢复正常数据通讯.

使用特权

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

本版积分规则

179

主题

1359

帖子

7

粉丝