前言:还是遇到了,那就不妨好好谈谈。自己便于记忆,所以结合网上已有的知识推测出。如有不适请大家点出,请大家理性观看。
问题: u16强转给u8的时候,到底是传的高8位还是低8位?
结论:分两种情况。
-
加了u8强转之后 取出的是 u16中高8位的值。
2.当u16的变量直接传给u8的时候,传递的是低8位的值。------所以说默认是传低地址中 的值。这个问题,要涉及到 大小端的事情。
STM32是小端。
如何理解小端?
1.地址增长的方向 与 数据位增长的方向 相反。所以是 小端存储。
2.由于STM32寄存器本身就是 特定用处的内存。所以姑且在此使用到寄存器 方便理解。
3.图中可以看到 寄存器地址增加的方向与 数据位增长的方向 没有交点,所以方向相反。称为小端。
所以在 加了 强转之后 取出的才是 u16中高8位的值。
当u16的变量直接传给u8的时候,传递的是低8位的值。