[STM32F1] CAN通讯的问题

[复制链接]
 楼主| 比神乐 发表于 2024-9-4 11:01 | 显示全部楼层 |阅读模式
我们的协议 4.png
5.png
帧标识符一共29位。
3.png
是不是可以把低16位写到CAN_FilterInitStructure.CAN_FilterIdLow里,
高13位写到CAN_FilterInitStructure.CAN_FilterIdHigh里,高三位补零
谢谢
星辰大海不退缩 发表于 2024-9-4 22:16 | 显示全部楼层
按照CAN通讯协议进行开发比较好
classroom 发表于 2024-9-10 13:42 | 显示全部楼层
有自己的想法是好的,但为啥不按照通讯协议来
jotliu 发表于 2024-9-10 15:51 | 显示全部楼层
完全可以吧
我喜欢打游戏 发表于 2024-9-10 16:13 | 显示全部楼层
应该可以的,实际测试一下吧
 楼主| 比神乐 发表于 2024-9-11 08:04 | 显示全部楼层
classroom 发表于 2024-9-10 13:42
有自己的想法是好的,但为啥不按照通讯协议来

就是按照通讯协议来的
别乱了阵脚 发表于 2024-10-4 09:14 | 显示全部楼层
在STM32的CAN过滤器配置中,CAN_FilterIdLow和CAN_FilterIdHigh用于设置过滤器的标识符。通常情况下,CAN标识符的位数是29位,但CAN过滤器的配置需要根据具体的CAN控制器和过滤器模式来设置。
光辉梦境 发表于 2024-10-4 14:00 | 显示全部楼层
CAN标识符通常是29位,可以分为以下部分:高11位:标准标识符(Standard Identifier)高18位:扩展标识符(Extended Identifier

三生万物 发表于 2024-10-4 15:00 | 显示全部楼层
STM32中,CAN过滤器的配置涉及到以下几个结构体成员:CAN_FilterIdHigh:高16CAN_FilterIdLow:低16

淡漠安然 发表于 2024-10-4 16:00 | 显示全部楼层
假设你的CAN标识符是29位,可以按照以下方式进行配置:0x1FFFFF;高13位:0x1F16位:0xFFFF将高13位和低16位分别写入CAN_FilterIdHighCAN_FilterIdLow

暖了夏天蓝了海 发表于 2024-10-4 17:00 | 显示全部楼层
标识符位数:确保标识符的位数和过滤器的配置一致

江河千里 发表于 2024-10-4 18:00 | 显示全部楼层
过滤器模式很重要,根据实际需求选择合适的过滤器模式(如ID列表模式或ID掩码模式)

冰春彩落下 发表于 2024-10-4 19:00 | 显示全部楼层
过滤器编号,确保使用的过滤器编号在有效范围内

一秒落纱 发表于 2024-10-4 20:00 | 显示全部楼层
通过将29CAN标识符的高13位和低16位分别写入CAN_FilterIdHighCAN_FilterIdLow,可以正确配置CAN过滤器。确保标识符的位数和过滤器的配置一致,并根据实际需求选择合适的过滤器模式和编号

夜阑风雨 发表于 2024-10-4 21:00 | 显示全部楼层
一般情况是可以用cubemx配置can的,就可以很快的实现底层驱动和一些协议通讯了

远山寻你 发表于 2024-10-4 22:00 | 显示全部楼层
高三位补零应该是没啥问题的

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

本版积分规则

470

主题

3535

帖子

7

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