首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

[求助]strongchen版主,CAN发送波特率由原来的250K改成500K后为啥发出了好多错误帧

[求助]strongchen版主,CAN发送波特率由原来的250K改成500K后为啥发出了好多错误帧

这是我的CAN设置,原来为250K

CAN0CTL1 = 0x87;
CAN0BTR0 = 0x43; // CAN0BTR0=0x43;set SJW=2, Prescaler value=4
CAN0BTR1 = 0xF6; // CAN0BTR1=0xF6;set TSEG2=8,TSEG1=7,Bit Rate=250k
CAN0IDAC = 0x00; //
改为CAN0BTR0 = 0x41rescaler value=2了,波特率就变为500了,但为啥用CANOE看就发出了好多错误帧,而原来250K时发出的数据就没有什么错误帧,恳请版主帮忙解答一下。谢谢!
这个是我的配置。不过出现错误帧和总线、硬件都有可能相关


CAN0CTL0_INITRQ=1; //初始化模式
CAN0CTL1_CANE=1;
while(CAN0CTL1_INITAK!=1);
CAN0CTL1_CLKSRC=0; //选择晶振频率
CAN0CTL1_LOOPB=0; //开启环路检测
CAN0CTL1_LISTEN=0;

CAN0BTR0_SJW=0; //1个Tq
CAN0BTR0_BRP=0;
CAN0BTR1_SAMP=0; //每位采样一次
CAN0BTR1_TSEG_20=2; //Tseg2=3Tq
CAN0BTR1_TSEG_10=3; //Tseg1=4Tq,波特率为500k/s,每ms可以发送32个数据
谢谢matthewrain,请问你得晶振频率是4兆的吧,SJW对波特率有什么影响?再次感谢!
返回列表