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

807MSCAN

807MSCAN

您好!
在使用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)
{
.........发送程序
}

也能收到数据 但是不正确
即使上面那段程序放在主程序中,接收结果也不正确. 请各位帮忙 谢谢.
互助互惠
在使用PE时,如果修改了PE生成的代码,可以用FREEZE功能阻止它重新生成代码。
海纳百川  有容乃大
返回列表