前言
前几天在同事的讨论下,又想起can信号大端、小端的问题。有点印象,但具体情况又忘了。翻了2篇博文后,知识点才回来。
反思
这个事情来回至少3次,记不住的问题是什么?我总结了,问题如下:
- 会用,但没有理解
- 信息混杂,没有理清主干
问题是什么
“can信号的大端、小端有什么区别?”,“can信号的大端、小端如何读值(写值)?”。也许类似的问题还有很多,如果要按照每个提问的逻辑去解答,会有太多冗余。是否应该先掌握核心,再去匹配问题,而不是先匹配问题。此处让我想起玩魔方,几个公式就够了(这不是最快的解法,但这是最简单的解法)
问题核心
为避免被太多的提问花了眼,我将核心定为 "从信号定义到图"(反之亦然)
来看一个示例:

以上的信号定义是(28,16),大端(红线),小端(蓝线),绿线 = 红线 + 蓝线
画图:起点(28),大端(从左到右,从上到下),小端(从右到左,从上到下)
读值:大端(从上到下,从左到右),小端(从下到上,从左到右)
大端读值:B28 B27 B26 B25 B24 B39 B38 B37 B36 B35 B34 B33 B32 B47 B46 B45
小端读值:B43 B42 B41 B40 B39 B38 B37 B36 B35 B34 B33 B32 B31 B30 B29 B28
总结
记住“画图时,位数据的流向”,记住“读值时,字节的顺序”,千万别又忘了 ^_^
7734

被折叠的 条评论
为什么被折叠?



