- UID
- 344555
- 性别
- 男
|
您好!
在使用CW8.0编写CAN总线程序时遇到下面的问题(使用Iint_MSCAN bean)
1.在CAN1_Iint()中写入代码,当我下次再进入的时候,代码消失.我没有对其做任何修改,也没有用其他程序打开过它
2.在设置完初始化后,编写发送程序
while((CANCTL0)&0010==1)
CAN_TB0_IDR0=0x33; /* 设置发送缓冲区的接收符ID,使用标准模式*/
CAN_TB0_IDR1=0;
CAN_TB1_IDR0=0x44;
CAN_TB1_IDR1=0;
CAN_TB2_IDR0=0x55;
CAN_TB2_IDR1=0;
CAN_TB0_DLR=0x0008; /* 设置发送缓冲区的数据长度*/
CAN_TB1_DLR=0x0008;
CAN_TB2_DLR=0x0008;
CAN_TB0_TBPR=0x10; /* 设置发送缓冲区的优先级*/
CAN_TB1_TBPR=0x20;
CAN_TB2_TBPR=0x30;
GPR3=0x7500; /* 设置中断级别*/
CANRIER=0x0001; //允许MSCAN接收中断
while(1)
{
.........发送程序
}
通过另一块EVM可以接受数据
但是加了一个{}后
while((CANCTL0)&0010==1)
{
CAN_TB0_IDR0=0x33; /* 设置发送缓冲区的接收符ID,使用标准模式*/
CAN_TB0_IDR1=0;
CAN_TB1_IDR0=0x44;
CAN_TB1_IDR1=0;
CAN_TB2_IDR0=0x55;
CAN_TB2_IDR1=0;
CAN_TB0_DLR=0x0008; /* 设置发送缓冲区的数据长度*/
CAN_TB1_DLR=0x0008;
CAN_TB2_DLR=0x0008;
CAN_TB0_TBPR=0x10; /* 设置发送缓冲区的优先级*/
CAN_TB1_TBPR=0x20;
CAN_TB2_TBPR=0x30;
GPR3=0x7500; /* 设置中断级别*/
CANRIER=0x0001; //允许MSCAN接收中断
}
while(1)
{
.........发送程序
}
也能收到数据 但是不正确
即使上面那段程序放在主程序中,接收结果也不正确. 请各位帮忙 谢谢. |
|