打印
[ZLG-MCU]

流明的CAN模块问题

[复制链接]
2269|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
疯子8972|  楼主 | 2009-6-24 16:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
流明的CAN模块问题
最近使用流明的CAN模块,如果我的CAN信号线和ZLG CAN分析仪连接上
发送一帧后  分析仪显示一帧数据    并且流明单片机进入中断
我读中断的结果temp1 = CANStatusGet(CAN0_BASE, CAN_STS_CONTROL);
temp1值为0x48,即CAN_STATUS_EWARN和CAN_STATUS_TXOK
奇怪,为什么既然已经成功TXOK了,还有警报呢?

如果把拔掉CAN线,发送一帧,
进入中断temp1为0x63,分别是代表4种错误
CAN_STATUS_LEC_STUFF,CAN_STATUS_LEC_FORM,
CAN_STATUS_EWARN,CAN_STATUS_EPASS
而且不停的进入中断,读出一直是这四种错误,就算我不再发送也是这样
请问谁用过流明的CAN模块  能给点思路

相关帖子

沙发
疯子8972|  楼主 | 2009-6-25 09:37 | 只看该作者

问题部分解决

问题部分解决
发现波特率有问题  现在正常发送没有问题了
但是一旦线路有问题   状态位中CAN_STATUS_EWARN,CAN_STATUS_EPASS这两位就一直存在,请问如何将这两个错误清除呢,错误计数器的值都是只读的,该怎么清零呢?

使用特权

评论回复
板凳
ijk| | 2009-6-29 17:23 | 只看该作者

复位

  复位CAN模块。

使用特权

评论回复
地板
LM CAN Support| | 2009-7-1 09:14 | 只看该作者

流明的CAN模块问题

回复1楼:
“不停的进入中断”是因为使能了CAN“状态中断”所致,实际应用中通常只需要设置报文挂起中断及总线错误中断,即按如下设置:

···
CANIntEnable(ptCanNode->ulBaseAddr, CAN_INT_MASTER | CAN_INT_ERROR);
                                                                        /* 允许挂起中断及错误中断       */
···

当线路有问题时,则进入错误中断,CAN驱动包(zlg_can.c、zlg_can.h (V1.4之前为my_can.c、my_can.h)可到www.zlgmcu.com相关板块下载)提供的解决方案是在错误中断中设置相关标志,再在main()函数中延时一段时间后重新将CAN控制器接入总线,即调用驱动包的函数canNodeBusOn( )即可。

使用特权

评论回复
5
LM CAN Support| | 2009-7-1 09:30 | 只看该作者

CAN 错误中断处理

    在错误中断中通常也只需要处理“脱离总线”错误,处理方法就是复位CAN模块使其重新接入总线,CAN驱动包里的canNodeBusOn( )函数即干了这件事。
    当出现脱离总线故障时,不建议立即复位CAN模块,因为出现脱离总线故障有可能是CAN节点自身的问题,如果立即接入总线则有可能使得挂在CAN总线上的其他正常节点无法正常通信(总线上的通信受到问题节点的干扰),对脱离总线的错误中断处理通常作适当延时后再接入总线即可。

使用特权

评论回复
6
xiaoxin1986| | 2009-7-4 16:39 | 只看该作者

不错,学些了

使用特权

评论回复
7
linhai1986| | 2009-7-7 21:52 | 只看该作者

学习了

使用特权

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

本版积分规则

32

主题

576

帖子

37

粉丝