查看: 3982|回复: 3

[S12] 请教一下飞思卡尔单片机MC9S12XET256芯片中MSCAN模块设置问题

[复制链接]
  • TA的每日心情
    擦汗
    2018-6-8 19:35
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    6

    主题

    17

    帖子

    0

    注册会员

    Rank: 2

    积分
    131
    最后登录
    2019-5-31
    发表于 2017-8-24 09:21:02 | 显示全部楼层 |阅读模式
    在利用MC9S12XET256芯片进行CAN通讯设置中,CAN发送中设置ID的操作语句看不懂想请教大家,
    设置语句如下:
      // 写入标识符
      CAN1TXIDR0 = (unsigned char)(msg.id>>3);
      CAN1TXIDR1 = (unsigned char)(msg.id<<5);
    不懂为什么在设置时需要右移3位赋给IDR0,然后左移5位赋给IDR1,就实现了发送消息时ID的写入,请懂的介绍一下,谢谢!比如ID = 0x13E。


    完整发送代码如下:
    Bool MSCAN0SendMsg(struct can_msg msg)
    {
       unsigned char send_buf, sp;

       // 检查数据长度
      if(msg.len > 8)
         return(FALSE);

       // 检查总线时钟
      if(CAN1CTL0_SYNCH==0)
         return(FALSE);

       send_buf = 0;
       do
       {
         // 寻找空闲的缓冲器
        CAN1TBSEL=CAN1TFLG;
         send_buf=CAN1TBSEL;
       }

       while(!send_buf);

       // 写入标识符
      CAN1TXIDR0 = (unsigned char)(msg.id>>3);
       CAN1TXIDR1 = (unsigned char)(msg.id<<5);

       if(msg.RTR)
         // RTR = 阴性
        CAN1TXIDR1 |= 0x10;

       // 写入数据
      for(sp = 0; sp < msg.len; sp++)
         *((&CAN1TXDSR0)+sp) = msg.data[sp];

       // 写入数据长度
      CAN1TXDLR = msg.len;

       // 写入优先级
      CAN1TXTBPR = msg.prty;

       // 清 TXx 标志 (缓冲器准备发送)
       CAN1TFLG = send_buf;

       return(TRUE);

    }

    我知道答案 目前已有3人回答
    事实上事实上事实上事实上
    回复

    使用道具 举报

    该用户从未签到

    712

    主题

    6371

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    24884
    最后登录
    2025-7-20
    发表于 2017-8-24 09:53:18 | 显示全部楼层
    楼主可以看下对应寄存器,以及你代码头文件 CAN1TXIDR0定义,移位肯定是为了做正确的配置,请结合16芯片的手册看看。MSCAN章节,寄存器那块。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2018-6-8 19:35
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    6

    主题

    17

    帖子

    0

    注册会员

    Rank: 2

    积分
    131
    最后登录
    2019-5-31
     楼主| 发表于 2017-8-25 14:49:01 | 显示全部楼层
    小恩GG 发表于 2017-8-24 09:53
    楼主可以看下对应寄存器,以及你代码头文件 CAN1TXIDR0定义,移位肯定是为了做正确的配置,请结合16芯片的 ...

    好的,谢谢版主
    事实上事实上事实上事实上
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    昨天 11:03
  • 签到天数: 1971 天

    连续签到: 21 天

    [LV.Master]伴坛终老

    4

    主题

    8945

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    13926
    最后登录
    2025-7-20
    发表于 2018-4-11 13:07:33 | 显示全部楼层
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-21 03:31 , Processed in 0.088899 second(s), 24 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表