下你所需,载你所想!
汇集开发技术源码资料

基于飞思卡尔MC9s单片机的CAN通信代码

: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总线同步

基于飞思卡尔MC9s单片机的CAN通信代码

热门推荐

相关文章