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

求助CAN总线

byte temp;

CAN1TBSEL=CAN1TFLG; //Transmit Buffer Selection
temp=CAN1TBSEL;

如:
CAN1TBSEL=CAN1TFLG; //如CAN1TBSEL=CAN1TFLG=0x00000110;
temp=CAN1TBSEL; //赋值后,CAN1TBSEL=0x00000010;
hi  thank you for your help
CAN1TBSEL=CAN1TFLG; //Transmit Buffer Selection
temp = CAN1TBSEL;
CAN1TXIDR0=0x01;
CAN1TXIDR1=0x00; //MSCAN 1 Transmit Identifier Register
CAN1TXIDR2=0x04;
CAN1TXIDR3=0x08;
for(i=0;*(MsgOut+i)!='\0';i++)
*((char *)&CAN1TXDSR0+i)=*(MsgOut+i); //MSCAN 1 Transmit Data Segment Register
CAN1TXDLR=i; //***** CAN1TXDLR 最多8个字节 ****//
//// CAN1TXTBPR=0x00; //设置发送缓冲区优先级
CAN1TFLG=CAN1TBSEL; //清除发送缓冲标志
while(!(CAN1TFLG&temp)); //只用了一次发送任务,只要CAN1TFLG==1,就发送成功
printp("CAN1 SEND\n");

这样试试,初始化程序没问题。



hi  thank you for your help
返回列表