[其他ST产品] 710的CAN为什么扩展帧要这样把数据扭过来?

[复制链接]
2933|0
 楼主| progrime 发表于 2007-9-15 09:03 | 显示全部楼层 |阅读模式
CAN, go, pc, ST, TI
#define EXT_FIXED_ID_ARB_L(id)    ((u16)(FIXED_ID_ARB(id) >> 11))
#define EXT_FIXED_ID_ARB_H(id)    ((u16)(STD_FIXED_ID_ARB(id) | ((FIXED_ID_ARB(id) >> 27) & 0x03)))


if (pCanMsg->IdType == CAN_STD_ID)
    {
          // standard ID
        CAN->sMsgObj[0].A1R = 0;
        CAN->sMsgObj[0].A2R = (CAN->sMsgObj[0].A2R & 0xE000) | STD_FIXED_ID_ARB(pCanMsg->Id);
    }
    else
    {
          // extended ID
        CAN->sMsgObj[0].A1R = EXT_FIXED_ID_ARB_L(pCanMsg->Id);
        CAN->sMsgObj[0].A2R = (CAN->sMsgObj[0].A2R & 0xE000) | EXT_FIXED_ID_ARB_H(pCanMsg->Id);
    }
您需要登录后才可以回帖 登录 | 注册

本版积分规则

101

主题

306

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部