标题:
CAN扩展帧 标示符屏蔽设置问题
[打印本页]
作者:
dicke-dunkun
时间:
2009-12-12 09:22
标题:
CAN扩展帧 标示符屏蔽设置问题
本帖最后由 dicke-dunkun 于 2009-12-12 09:27 编辑
//预分频系数为1,即Tq=晶振时钟=0.25us
#define BaudRatePrescaler 2
//TSEG1=5,TSEG2=2,即Tbit=(1+5+2)*Tq=2us,即波特率为500kbps
#define TimeSegment1 5
#define TimeSegment2 2
//SJW=2*Tq
#define SyncJumpWidth 2
void MSCANInit(void)
{
CAN0CTL0 = 0x01; //进入初始化模式
while(CAN0CTL1_INITAK==0) //等待CAN进入初始化模式
;
CAN0CTL1 = 0x84; //开启CAN模块,开启唤醒低通滤波,晶振时钟作为时钟源
CAN0BTR0 = ((SyncJumpWidth-1)<<6)|(BaudRatePrescaler-1); //设置波特率
CAN0BTR1 = ((TimeSegment2-1)<<4)|(TimeSegment1-1);
CAN0CTL0_INITRQ = 0; //进入普通模式
while(CAN0CTL1_INITAK!=0) //等待进入普通模式
;
CAN0TIER = 0; //关闭CAN发送空中断
CAN0CTL0_WUPE = 1; //允许唤醒
CAN0CTL0_CSWAI = 0; //WAI模式下工作
while(CAN0CTL0_RXFRM!=1) //判断信息接受标志位
;
}
以上是我的CAN初始化程序,在接受扩展帧时收不到消息,麻烦各位大侠帮看一下,另外请教一下加入我该节点要收四个扩展帧ID怎么设置标示符接收屏蔽寄存器!十分感谢!
作者:
jimmycc
时间:
2010-1-6 21:33
首先看你选择哪种过滤器,将那种过滤器里的IDE位置1
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0