OpenEdv-开源电子网

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

STM32F103的CAN总线怎么接收64个不同ID的数据呢?

[复制链接]

33

主题

77

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
314
金钱
314
注册时间
2015-11-20
在线时间
76 小时
发表于 2018-6-26 10:26:40 | 显示全部楼层 |阅读模式
1金钱
STM32F103的CAN总线怎么接收64个不同ID的数据呢?我现在在测试一个毫米波雷达,它一直不间断的发送64的不同ID的数据

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

51

主题

2166

帖子

2

精华

论坛元老

Rank: 8Rank: 8

积分
10653
金钱
10653
注册时间
2017-4-14
在线时间
2780 小时
发表于 2018-6-26 10:50:44 | 显示全部楼层
64个都接收就不用过滤了,直接接收就可以了呗
回复

使用道具 举报

33

主题

77

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
314
金钱
314
注册时间
2015-11-20
在线时间
76 小时
 楼主| 发表于 2018-6-26 11:21:20 | 显示全部楼层
275891381 发表于 2018-6-26 10:50
64个都接收就不用过滤了,直接接收就可以了呗

但是需要与ID对上号。如果按您说的做,从机一直再发且与主机不同步,所以不行。
回复

使用道具 举报

33

主题

77

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
314
金钱
314
注册时间
2015-11-20
在线时间
76 小时
 楼主| 发表于 2018-6-26 11:22:42 | 显示全部楼层
图南 发表于 2018-6-26 11:21
但是需要与ID对上号。如果按您说的做,从机一直再发且与主机不同步,所以不行。

想着当接收一个ID后,把更改过滤器标识符,不知道行不行,正在测试
回复

使用道具 举报

51

主题

2166

帖子

2

精华

论坛元老

Rank: 8Rank: 8

积分
10653
金钱
10653
注册时间
2017-4-14
在线时间
2780 小时
发表于 2018-6-26 12:12:47 | 显示全部楼层
图南 发表于 2018-6-26 11:21
但是需要与ID对上号。如果按您说的做,从机一直再发且与主机不同步,所以不行。

怎么会,接收的时候CanRxMsg RxMessage;把id 和数据一起保存了呀,你提取出来不久可以了
回复

使用道具 举报

33

主题

1628

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6666
金钱
6666
注册时间
2015-8-25
在线时间
1035 小时
发表于 2018-6-26 14:08:35 | 显示全部楼层
如果发送端可以编程就好办,把ID号也加入到发送的数据中,规定好数据格式
简单举个例子:你要发送的实际数据有11byte,byte0到byte11,分三次发送,第一次:ID号(四个字节)+byte0-byte3;第二次:ID号(四个字节)+byte4-byte7;第三次:ID号(四个字节)+byte7-byte10;
He who fights with monsters should look to it that he himself does not become a monster, when you gaze long into the abyss, the abyss also gazes into you.
过于执着就会陷入其中,迷失自己,困住自己。
回复

使用道具 举报

33

主题

77

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
314
金钱
314
注册时间
2015-11-20
在线时间
76 小时
 楼主| 发表于 2018-6-26 15:13:54 | 显示全部楼层
275891381 发表于 2018-6-26 12:12
怎么会,接收的时候CanRxMsg RxMessage;把id 和数据一起保存了呀,你提取出来不久可以了

有道理
回复

使用道具 举报

33

主题

77

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
314
金钱
314
注册时间
2015-11-20
在线时间
76 小时
 楼主| 发表于 2018-6-26 15:14:07 | 显示全部楼层
回复

使用道具 举报

51

主题

2166

帖子

2

精华

论坛元老

Rank: 8Rank: 8

积分
10653
金钱
10653
注册时间
2017-4-14
在线时间
2780 小时
发表于 2018-6-26 17:06:00 | 显示全部楼层

就是嘛
接收的CanTxMsg结构体,扩展还是标准,数据,id 等等都有
typedef struct
{
  uint32_t StdId;  /*!< Specifies the standard identifier.
                        This parameter can be a value between 0 to 0x7FF. */

  uint32_t ExtId;  /*!< Specifies the extended identifier.
                        This parameter can be a value between 0 to 0x1FFFFFFF. */

  uint8_t IDE;     /*!< Specifies the type of identifier for the message that
                        will be transmitted. This parameter can be a value
                        of @ref CAN_identifier_type */

  uint8_t RTR;     /*!< Specifies the type of frame for the message that will
                        be transmitted. This parameter can be a value of
                        @ref CAN_remote_transmission_request */

  uint8_t DLC;     /*!< Specifies the length of the frame that will be
                        transmitted. This parameter can be a value between
                        0 to 8 */

  uint8_t Data[8]; /*!< Contains the data to be transmitted. It ranges from 0
                        to 0xFF. */
} CanTxMsg;
回复

使用道具 举报

31

主题

1954

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4510
金钱
4510
注册时间
2018-5-11
在线时间
944 小时
发表于 2018-6-26 18:12:16 | 显示全部楼层
本帖最后由 warship 于 2018-6-26 18:16 编辑

CAN总线是没有ID地址的,
所谓的ID是报文ID,
同一个节点可以发不同ID的报文,也可以接收不同ID的报文。可以把CAN的报文ID理解并实现为报文类型,
比如所有与温度或环境有关的报文规定为一个ID,
所有与目标有关的报文规定为另一个ID,......等等等等

我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复

使用道具 举报

0

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2017-7-27
在线时间
16 小时
发表于 2018-7-24 20:03:18 | 显示全部楼层
楼主实现了没?我最近正遇到这个问题。。求帮忙
回复

使用道具 举报

33

主题

77

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
314
金钱
314
注册时间
2015-11-20
在线时间
76 小时
 楼主| 发表于 2018-7-25 09:22:30 | 显示全部楼层
dreamadmirer 发表于 2018-7-24 20:03
楼主实现了没?我最近正遇到这个问题。。求帮忙

我是全部都接收  再一个一个判断
回复

使用道具 举报

1

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2016-10-21
在线时间
13 小时
发表于 2018-8-10 11:50:55 | 显示全部楼层
全部接收,在删选
回复

使用道具 举报

2

主题

26

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
215
金钱
215
注册时间
2017-4-17
在线时间
87 小时
发表于 2020-4-11 15:31:39 | 显示全部楼层
全部接受在一个个帅选,是不是发送端的每个设备烧录的程序可能会不一样啊?一个设备一个程序?只因ID不同。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-25 01:03

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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