【求教】STM32中u32转float
c语言吧
全部回复
仅看楼主
level 1
binggo_1992 楼主
STM32中无符号u32内存是倒过来的,比如
u32 a = 0x00 1F C5 07 的值应该是 07 C5 1F,转为十进制应该是 509215
但是如果直接强制转 a = (float)b ,它会按照 1F C5 07 的顺序转十进制 2082055
求问应该怎么转才正确?
2019年04月09日 02点04分 1
level 9
你在存储的时候如果是四字节存储, 四字节读取, 是不用管内存里面什么样的.
2019年04月09日 02点04分 2
直接转float出错了啊。所以才跑去看内存,发现字节顺序是倒过来的
2019年04月09日 03点04分
肯定别的地方的问题 存储读取格式肯定是一定的 存储读取都是小端, 你四个字节读取的时候他会再反过来
2019年04月09日 03点04分
level 1
Cortex-M3提供大小端翻转的REV指令。不想用汇编的话,在CMSIS的core_m3.c提供了uint32_t __REV(uint32_t value)函数供你使用。
2019年09月23日 14点09分 3
level 11
BIG_ENDIAN
2019年09月23日 14点09分 4
1