在學習STM32的Flash讀寫時,遇到需要把uint32_t類型的長度數據存儲在Flash中,而現有的Flash寫入函數需要讀取uint8_t的字符數組。
用8位數組以小端模式存儲
#include <iostream>
using namespace std;
int main()
{
unsigned int APP_len=0x12345678;
unsigned char data_length[4]={0,0,0,0};
data_length[3]|=APP_len>>24; //12
data_length[2]|=APP_len>>16; //34
data_length[1]|=APP_len>>8; //56
data_length[0]|=APP_len; //78
for(int i=0;i<4;i++)
printf("\r\n%x\r\n",data_length[i]);
unsigned int Flash_APP_len=0;
for(int i=0;i<4;i++)
{
uint8_t tmp_len=data_length[i];
Flash_APP_len |=tmp_len<<(8*i);
}
printf("\r\n%#x\r\n",Flash_APP_len);
return 0;
}
結果
