我定义一个数组: uint8_t dat[8] = {0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xdc, 0x5e, 0x40}; 表示内存中的一个 double 类型变量数据,其值为 123.45。 以下代码: int main(int argc, char *argv[]){ uint8_t dat[] = {0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xdc, 0x5e, 0x40}; double test = *((double*)dat); printf("%.3f\r\n", test); return 0;}
输出结果为:123.450 但在 STM32F103RCT6 上运行时,以下代码会卡住: double test = *((double*)dat);
而使用 float 类型则不会卡住: float test = *((float*)dat);
如何在 STM32F103 上正确地将内存转换为 double 类型? 用的是 STM32CubeIDE
|