嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元微信扫码支付:2 元
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
使用按键控制can接口收发数据
void MSCANInit(void)
{
char sj,p;
char t_seg1, t_seg2;
CAN0CTL1 = 0x80;
if (!CAN0CTL0&0x01)
CAN0CTL0 =0x01; // 使能MSCAN初始化状态
while (!CAN0CTL1&0x01) // 等待MSCAN进入初始化状态
;
sj = (SJW-1)<<6;
p = (BRP-1);
// CAN0BTR0=0x40;
CAN0BTR0 = (sj|p); // 配置MSCAN波特率 0x82
t_seg1 = (TSEG1-1);
t_seg2 = (TSEG2-1)<<4;
CAN0BTR1 = (t_seg1 | t_seg2); // 配置时间段 0x25
CAN0IDMR0 = 0xFF; // 关闭所有标识符滤波器
CAN0IDMR1 = 0xFF;
CAN0IDMR2 = 0xFF;
CAN0IDMR3 = 0xFF;
CAN0IDMR4 = 0xFF;
CAN0IDMR5 = 0xFF;
CAN0IDMR6 = 0xFF;
CAN0IDMR7 = 0xFF;
CAN0CTL1 = 0x80; //使能MSCAN,选择外部晶振为MSCAN时钟源
CAN0CTL0 = 0x00; //使能MSCAN正常运行模式
while(CAN0CTL1&0x01) // 等待MSCAN进入正常运行模式
;
while(!(CAN0CTL0&0x10)) // 等待MSCAN与CAN总线同步
;
}