一、方法1
uint8_t array_8[16] = {0, 0, 0, 1};
uint32_t data_32 = 0;
data_32 = *(uint32_t*)array_8;
备注: *(uint32_t*)array_8
中的array_8
的地址必须4字节对齐
,不然运行会报错(Hard Fault
),例如:
//正确
data_32 = *(uint32_t*)&array_8[0];
//错误, 硬件错误
data_32 = *(uint32_t*)&array_8[1];
二、方法2
uint8_t array_8[16] = {0, 0, 0, 1};
uint32_t data_32 = 0;
memcpy(&data_32, array_8, 4);
这种方法没有对齐限制,灵活很多。