1. stm32 get uid
方法一:HAL_GetDEVID();
方法二 :.获取 96bit
uint32_t idAddr[]={0x1FFFF7AC, /*STM32F0??ID????*/
0x1FFFF7E8, /*STM32F1??ID????*/
0x1FFF7A10, /*STM32F2??ID????*/
0x1FFFF7AC, /*STM32F3??ID????*/
0x1FFF7A10, /*STM32F4??ID????*/
0x1FF0F420, /*STM32F7??ID????*/
0x1FF80050, /*STM32L0??ID????*/
0x1FF80050, /*STM32L1??ID????*/
0x1FFF7590, /*STM32L4??ID????*/
0x1FF0F420}; /*STM32H7??ID????*/
/*??MCU???ID*/
void GetSTM32MCUID(uint32_t *id,MCUTypedef type)
{
u32 temp0,temp1,temp2;
temp0 = *(__IO u32*)(idAddr[type]); //???????????(96?)
temp1 = *(__IO u32*)(idAddr[type]+4);
temp2 = *(__IO u32*)(idAddr[type]+8);
id[0] = (u8)(temp0 & 0x000000FF);
id[1] = (u8)((temp0 & 0x0000FF00)>>8);
id[2] = (u8)((temp0 & 0x00FF0000)>>16);
id[3] = (u8)((temp0 & 0xFF000000)>>24);
id[4] = (u8)(temp1 & 0x000000FF);
id[5] = (u8)((temp1 & 0x0000FF00)>>8);
id[6] = (u8)((temp1 & 0x00FF0000)>>16);
id[7] = (u8)((temp1 & 0xFF000000)>>24);
id[8] = (u8)(temp2 & 0x000000FF);
id[9] = (u8)((temp2 & 0x0000FF00)>>8);
id[10] = (u8)((temp2 & 0x00FF0000)>>16);
id[11] = (u8)((temp2 & 0xFF000000)>>24);
}