OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 18813|回复: 4

求救:can传送函数的不解。CAN_Transmit(CAN_TypeDef* CANx, CanTxMsg* TxMessage)

[复制链接]

28

主题

125

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
283
金钱
283
注册时间
2015-2-17
在线时间
9 小时
发表于 2015-5-10 19:06:43 | 显示全部楼层 |阅读模式
5金钱
原子哥,各位大神,请教一下:下面是官方固件库函数里面一个小函数 CAN_Transmit(CAN_TypeDef* CANx, CanTxMsg* TxMessage)
里面感觉不解。
加入TxMessage->IDE(原子库函数can那一节TxMessage->IDE=0,表示使用标准标识符
下面函数知道 if 成立进入 if 函数,让我有点不解的是下面的TxMessage->RTR不用左移1位。TxMessage->IDE不用左移2位。
中文手册里CAN_TIxR寄存器如下:RTR是在第1位,IDE是在第二位,所以我觉得应该要左移,请原子哥和大神们解答一下 ,谢谢。





if (TxMessage->IDE == CAN_Id_Standard)
    {
      assert_param(IS_CAN_STDID(TxMessage->StdId));  
      CANx->sTxMailBox[transmit_mailbox].TIR |= ((TxMessage->StdId << 21) | 
                                                  TxMessage->RTR);
    }
    else
    {
      assert_param(IS_CAN_EXTID(TxMessage->ExtId));
      CANx->sTxMailBox[transmit_mailbox].TIR |= ((TxMessage->ExtId << 3) | 
                                                  TxMessage->IDE | 
                                                  TxMessage->RTR);
    }

最佳答案

查看完整内容[请看2#楼]

你得看赋值给RTR的时候,是否就已经考虑了左移。 比如赋值0X01,和0X02,是不一样的结果。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-5-10 19:06:44 | 显示全部楼层
你得看赋值给RTR的时候,是否就已经考虑了左移。
比如赋值0X01,和0X02,是不一样的结果。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

28

主题

125

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
283
金钱
283
注册时间
2015-2-17
在线时间
9 小时
 楼主| 发表于 2015-5-10 22:47:57 | 显示全部楼层




上面是你can例程的一小段,按你这么说的话,就是TxMessage.IDE=4的时候才是can才使用扩展标识符?

回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-5-10 23:16:41 | 显示全部楼层
回复【3楼】前进的小兵:
---------------------------------
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

2

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2015-10-2
在线时间
9 小时
发表于 2016-4-20 12:03:34 | 显示全部楼层
这个函数的返回值是什么,代表什么意思?
加油,加油
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-16 22:52

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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