CAN总线发送与接收函数

初始化CAN模块
void INIT_CAN0(void) 
{
  if(CAN0CTL0_INITRQ==0)       // 查询是否进入初始化状态   
    CAN0CTL0_INITRQ =1;        // 进入初始化状态
  while (CAN0CTL1_INITAK==0);  //等待进入初始化状态

  CAN0BTR0_SJW = 0;            //设置同步
  CAN0BTR0_BRP = 7;            //设置波特率  
  CAN0BTR1 = 0x1c;             //设置时段1和时段2的Tq个数 ,总线频率为250kb/s
                               // 关闭滤波器                                  
  CAN0IDMR0 = 0xFF;
  CAN0IDMR1 = 0xFF;
  CAN0IDMR2 = 0xFF;
  CAN0IDMR3 = 0xFF;
  CAN0IDMR4 = 0xFF;
  CAN0IDMR5 = 0xFF;
  CAN0IDMR6 = 0xFF;
  CAN0IDMR7 = 0xFF; 

  CAN0CTL1 = 0xC0;             //使能MSCAN模块,设置为一般运行模式、使用外部晶振,使用总线时钟源 
  CAN0CTL0 = 0x00;             //返回一般模式运行
  while(CAN0CTL1_INITAK);      //等待回到一般运行模式
  while(CAN0CTL0_SYNCH==0);    //等待总线时钟同步
  CAN0RIER_RXFIE = 1;          //禁止接收中断
}


  • 4
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值