搜索
查看: 1122|回复: 4

[求助] STM32中怎么用can来解析JSON数据从上位机那里

[复制链接]

该用户从未签到

12

主题

20

帖子

0

蝴蝶豆

高级会员

最后登录
2021-5-10
发表于 2020-12-21 15:04:38 | 显示全部楼层 |阅读模式
如题!

{  
  topic: "env_light_ctrl",  
  addr: 1,
  
opt: Enable
}


比如要接收这组数据呢?
请大佬们指点指点,要是有参考例程就最好不过了!
回复

使用道具 举报

该用户从未签到

52

主题

1122

帖子

67

蝴蝶豆

论坛元老

最后登录
2021-4-24
发表于 2020-12-22 12:06:45 | 显示全部楼层
不是特别明白你的意思。你的意思是在上位机上解析json然后再按照某种规则传输can指令。(这是正常操作)还是说你想通过can传递json数据?
如果是后者倒不是不可以模拟需要自定义一个CAN协议,然后将json数据按照ascii码传递到mcu上。mcu再用cjson之类的将数据部分解析。但是这样做的意义是什么?这样做没有任何好处。建议用第一种
回复 支持 反对

使用道具 举报

该用户从未签到

12

主题

20

帖子

0

蝴蝶豆

高级会员

最后登录
2021-5-10
 楼主| 发表于 2020-12-22 13:30:24 | 显示全部楼层
watershade 发表于 2020-12-22 12:06
不是特别明白你的意思。你的意思是在上位机上解析json然后再按照某种规则传输can指令。(这是正常操作)还 ...

是上位机发个json数据过来,用can来做通信,单片机解析收到的数据,在执行相关指令
回复 支持 反对

使用道具 举报

该用户从未签到

32

主题

449

帖子

34

蝴蝶豆

金牌会员

最后登录
2021-5-6
发表于 2020-12-23 09:43:02 | 显示全部楼层
有个开源的c-jasson库,直接调用就可以了。
回复 支持 反对

使用道具 举报

该用户从未签到

52

主题

1122

帖子

67

蝴蝶豆

论坛元老

最后登录
2021-4-24
发表于 2020-12-23 10:49:21 | 显示全部楼层
shengxiaozhu 发表于 2020-12-22 13:30
是上位机发个json数据过来,用can来做通信,单片机解析收到的数据,在执行相关指令 ...

已经在上面说明了。首先你需要顶一个一个CAN传递文本和命令的格式。比方你用数据帧作为发送json文件的主题,划分一下11位或者29位标识符的用途。在里面定义一个帧类型,包ID,包编号。这样你就可以在包的第一个帧里面填写包的描述和CRC,接着发送数据,最后包结尾。这样你的mcu收到一串帧之后就知道将他们组合在一起。然后需要说明的是,如果你的数据很重要。比方说是升级某个节点的代码,那你还要搞个广播帧,让其它所有节点进入静默状态。
这里重申一遍,你用CAN传递没有效率的json数据不是一个好主意。
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|论坛-意法半导体STM32/STM8技术社区

GMT+8, 2024-5-14 18:27 , Processed in 1.270771 second(s), 34 queries .

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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