完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
我用的硬件是kvaser eagle。 同上,求解!
|
|
|
|
一直,没能直接解析dbc,手动获取can数据,在做的,一点都不方便。
|
|
|
|
楼主,现在会做了吗 我也碰到一样的问题,求解
|
|
|
|
|
|
1 条评论
|
|
Vector CANNape 可以解析,Labview暂时不会。
|
|
|
|
|
|
同问,想解析dbc文件,不知道怎么入手
|
|
|
|
我们先来看一段数据 BO_ 1024 VOLTAGE01: 8 BMS2 SG_ V01 : 7|16@0+ (0.001,0) [0|0] "" Vector__XXX SG_ V02 : 23|16@0+ (0.001,0) [0|0] "Unit2" Vector__XXX SG_ V04 : 42|16@0+ (0.001,0) [0|0] "Unit3" Vector__XXX SG_ V03 : 28|12@0+ (0.001,0) [0|0] "" Vector__XXX SG_ V01 : 7|16@0+ 此处的7是起始位置, |16表示数据长度是16位 @0表示是Motorola格式(Intel格式是1),+表示是无符号数据 关于7的起始位置,和Intel格式或者是Motorola格式是有关的,如果是Intel格式,起始位通常是0。 (0.001,0) 应该是说结果应该乘以0.001,通常两个字节表示的数字可能是一个很大的整数,起始我们是需要浮点数的,这样通过乘以这个0.001就能得到正确的数字。 0表示偏移量。偏移量是干什么用的呢,比如我们计算温度的时候,用无符号型数据,但是温度有零下,怎么表示呢,我们用0这个偏移量,比如(0.5,-40)就表示得这个数据乘以0.5,再减去40,这样就能表示零下40度的数据,精度是0.5度。两个字节最大能表示255,乘以0.5大概剩下127.5,然后减掉40,就得出,我们数据的范围是从(-40度到87.5度)这样的数据范围显然是无法满足我们的要求的,所以可能要1个半字节甚至2个字节才能表达完整的温度,或者牺牲精度为代价。 [0,0] 是表示最大值和最小值,定义一个范围,通常不用管 用下面两幅图来说明起始位置,也许能帮助理解 起始位置是7: 起始位置是0: 起始这个是和大端小端是相关的,起始位置是7,应该是大端(单片机),起始位置是0,应该是小端(PC)。可以理解成高低位在前还是在后。 看看这个之后在慢慢解析吧 ,我都是一个个解析的按照DBC文件格式 |
|
|
|
XUEXILE.......................................................
|
|
|
|
可以使用周立功CAN工具,这个好用,直接调用DBC文件进行转换即可
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
580 浏览 0 评论
1670 浏览 1 评论
用udl里的字符串信息在局域网内其他电脑连接sql数据库为什么为出现连接失败拒绝访问?
2392 浏览 2 评论
为什么同一个队列引用的全局变量,运行在两个子vi中发现队列数据丢失了
1851 浏览 0 评论
2036 浏览 0 评论
浏览过的版块 |
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-4 02:42 , Processed in 0.668016 second(s), Total 66, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号