硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4717|回复: 7
收起左侧

[有问必答] STM32F103 CAN总线接收大于8个字节的数据

[复制链接]

8

主题

18

回帖

120

积分

初级会员

积分
120
发表于 2018-7-17 14:50:56 | 显示全部楼层 |阅读模式
CAN通信    发送指令后,要怎么接收大于8个字节的数据,求大神指点一下啊。

10 0a 43 04 01 06 01 07    只接收到这个。。。

30 00 0a 00 00 00 00 00
21 01 08 01 05 00 00 00

后边这两段数据咋接收呢?


回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2018-7-17 14:52:04 | 显示全部楼层
分批发。
回复

使用道具 举报

8

主题

18

回帖

120

积分

初级会员

积分
120
 楼主| 发表于 2018-7-17 15:00:18 | 显示全部楼层

嗯呢,我现在是发一条指令,然后要接收3段数据,怎么接收呢,接收的数组最大8个字节
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2018-7-17 15:04:54 | 显示全部楼层
韦冠 发表于 2018-7-17 15:00
嗯呢,我现在是发一条指令,然后要接收3段数据,怎么接收呢,接收的数组最大8个字节

接收不影响,你发送那端分批发就行了,接收就跟串口中断一样,来数据了CAN中断里面收就行了。
回复

使用道具 举报

8

主题

18

回帖

120

积分

初级会员

积分
120
 楼主| 发表于 2018-7-17 15:11:10 | 显示全部楼层
eric2013 发表于 2018-7-17 15:04
接收不影响,你发送那端分批发就行了,接收就跟串口中断一样,来数据了CAN中断里面收就行了。

还是不太明白怎么分批发,我发送的指令是01 03,然后要接收的数据是
10 0a 43 04 01 06 01 07
30 00 0a 00 00 00 00 00
21 01 08 01 05 00 00 00
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2018-7-17 15:14:22 | 显示全部楼层
韦冠 发表于 2018-7-17 15:11
还是不太明白怎么分批发,我发送的指令是01 03,然后要接收的数据是
10 0a 43 04 01 06 01 07
30 00 0 ...

很好理解的,你发送了指令后,接收端收到命令是不是发送三次数据。

紧接着你发送端是不是要收到三次数据,每次8个数据,这么说是不是理解了,直接进入CAN接收中断里面了,每来一次中断,有8个数据,来三次中断。
回复

使用道具 举报

8

主题

18

回帖

120

积分

初级会员

积分
120
 楼主| 发表于 2018-7-17 15:19:48 | 显示全部楼层
eric2013 发表于 2018-7-17 15:14
很好理解的,你发送了指令后,接收端收到命令是不是发送三次数据。

紧接着你发送端是不是要收到三次数 ...

这样啊 ,理解了哈 谢谢
回复

使用道具 举报

0

主题

159

回帖

159

积分

初级会员

积分
159
发表于 2018-7-17 15:40:40 | 显示全部楼层
楼主的CAD总线是属于私有网络么,就是总线上就只有自己的设备,如果有,那就用不同的ID码来,一组组分发,然后再拼接报文,我以前就用过这种方法,但也承认很不规范··
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-28 18:05 , Processed in 0.273549 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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