打印
[其他ST产品]

如何从通过 CAN 总线连接访问一个板卡的变量?

[复制链接]
345|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
WHALEE|  楼主 | 2025-5-21 12:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用can实现两篇F407的通信链接如何从通过 CAN 总线访问一个板卡的变量?

就像仿真一样能看到另一个板卡变量的实时变化

使用特权

评论回复
沙发
elephant00| | 2025-5-21 16:00 | 只看该作者
主要涉及CAN总线连接及CAN初始化等。

使用特权

评论回复
板凳
公羊子丹| | 2025-5-22 07:35 | 只看该作者
你可以在从板那边定时把变量打包成CAN帧发出来,主板收到后再解析,就能实时监控了。

使用特权

评论回复
地板
周半梅| | 2025-5-22 07:36 | 只看该作者
实时性还不错,我试过10ms周期发变量,用环形缓冲加ID区分,效果挺流畅的。

使用特权

评论回复
5
帛灿灿| | 2025-5-22 07:37 | 只看该作者
你可以做个简单的CAN协议,比如用ID来表示变量地址,数据段就是变量值,主板收到直接更新显示。

使用特权

评论回复
6
童雨竹| | 2025-5-22 07:37 | 只看该作者
如果变量多,可以分组发送,比如一组发电流、电压,下一组发状态字,轮流上报。

使用特权

评论回复
7
万图| | 2025-5-22 07:38 | 只看该作者
也可以实现主控板主动发请求帧,从板根据请求返回指定变量值,这样灵活一些。

使用特权

评论回复
8
Wordsworth| | 2025-5-22 07:39 | 只看该作者
我之前搞了个调试协议,用CAN收发命令+变量,主控像调试器一样可以读写对方变量。

使用特权

评论回复
9
Bblythe| | 2025-5-22 07:39 | 只看该作者
建议变量做个版本号或者变更标志位,主板只在变更时才处理,这样节省带宽。

使用特权

评论回复
10
Pulitzer| | 2025-5-22 07:41 | 只看该作者
STM32CubeIDE生成的代码可以删掉 HAL 的 TIM Init,再手动写 LL 的初始化代码就能过编译了。

使用特权

评论回复
11
Uriah| | 2025-5-22 07:42 | 只看该作者
注意用FDCAN的话还能拓展数据长度到64字节,传结构体更方便,比经典CAN强。

使用特权

评论回复
12
Clyde011| | 2025-5-22 07:43 | 只看该作者
要实现仿真效果,可以加个CRC或时间戳字段,主板收到后还能判断数据是否超时或异常。

使用特权

评论回复
13
gaonaiweng| | 2025-5-31 18:22 | 只看该作者
CAN 总线只是物理层通信 + 帧协议,它不会知道对方有什么变量,也无法“远程读内存”。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

23

主题

23

帖子

0

粉丝