:285.535KB : :1 :2022-08-30 17:16:38
基于飞思卡尔MC9s单片机的CAN通信代码如果开发者对于本文件有需要的可以参考。使用按键控制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总线同步
10-08飞思卡尔单片机CAN通信
10-02飞思卡尔MC9S08DZ60程序案例
01-29飞思卡尔电磁导引车最终程序代码
01-26基于飞思卡尔XEP100的LED点灯程序