现在我的CAN模块已经实现中断接收,但是发送老是出现问题。有时候成功,有时候发送不成功(接收者是周立功can仿真器,配合电脑使用),或者发送100次(之间有32ms时间差),只成功前4,5次,程序卡在第二行,观察显示ECanaRegs.CANTA.all=0
ECanaRegs.CANTRS.all = 0x00000001;
while(ECanaRegs.CANTA.all == 0);
ECanaRegs.CANTA.all = 0x00000001;
我的波特率设置BRP=49,TSEG2 =7; TSEG1 = 14;
其他的波特率也试过(比如49,6,15; 79 ,2,10; 79,4 ,8等),也是有时候好用,有时候无效。
请帮忙看看,我已经调试了好几天了,应该不存在其他低级错误。
这是主程序:(Runcount变量125us加1)
for(;;)
{
If(runcount & 0x000000ff) ==5)
{
ECanaRegs.CANTRS.all = 0x00000001;
while(ECanaRegs.CANTA.all == 0); //卡在这里
ECanaRegs.CANTA.all = 0x00000001;
Runcount++;
}
} |