CAN

STM32 CAN数据帧问题

发布于 2019-09-24 15:36:02
动作:设备A使用标准格式数据帧发送8Bit数据数据至设备B。结果:设备B确实接收到正确的8Bit数据

问题:设备B对接收到的帧数据进行解析时,发现接受到的是扩展格式数据帧,即IDE=RT_CAN_EXTID,且ID为0x1D567168

说明:
1. 设备A和设备B硬件、软件以及CAN配置相同,仅ID不同。A为0x01,B为0x02;
2.设备A的msg配置如下:
msg.id = 0x01;
msg.ide = RT_CAN_STDID;
msg.rtr = RT_CAN_DTR;
msg.len = 8;

且在发送过程中,不定时打印A的msg,输出均为标准格式数据帧,ID与设置一样为0x01。
3. 对设备B接受到的帧数据解析发现:IDE=扩展格式,
ID随着设置A的重启动有时还会变化,大多数情况为0x1D567168,有时为1C467168,1D565368
4. 尝试使用HDR硬件过滤,但情况还是如上一样。
5. 设备的CAN芯片与CAN转USB模块不能互联,所以使用设备A发送CAN数据至设备B,设备B用USB转串口打印输出至电脑。
6.代码参考了官方微信公众号发布的文章《CAN设备应用指南》

求助:
请问造成这种情况的一般原因会是什么呢?需要如何修改这个问题呢?

查看更多

关注者
0
被浏览
876
7 个回答
tyustli
tyustli 2019-09-24
代码是最新的 master 吗?测试代码是你自己写的还是 应用指南的 sample
aranzeb
aranzeb 2019-09-24
tyustli 发表于 2019-9-24 16:05
代码是最新的 master 吗?测试代码是你自己写的还是 应用指南的 sample


从github上更新了最新的can.c和drv_can.c。设备B能够正确的正确的收到帧数据,解析帧数据后,是设备A的ID:0x01,且为标准格式数据帧,数据也正常。
但是硬件过滤好像不起作用
wuxiaofeng
wuxiaofeng 2019-10-10
我也测试了一下 ,硬件过滤不起作用呢
UVYM_2965
UVYM_2965 2020-01-03
请教一下,硬件过滤表不起作用的问题解决了吗?
UVYM_2965
UVYM_2965 2020-01-04
tyustli 发表于 2020-1-3 09:22
可以参考一下这篇:
https://www.rt-thread.org/qa/forum.php?mod=viewthread&tid=422055&highlight=CAN ...


大神,看过了这篇文章,还是不太明白官方例程中硬件过滤表设置的问题

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览