STM32唯一ID
STM32微控制器有一個96位的產(chǎn)品唯一身份標識,在任何情況下都是唯一且不允許修改
這個96位的產(chǎn)品唯一身份標識,可以以字節(jié)(8位)為單位讀取,也可以以半字(16位)或者全字(32位)讀取。
基地址:0x1FFF F7E8
以全字(32bit)讀取
u32 GetLockCode(void) {
u32 stm32Id[3]={0};
stm32Id[0]=*(vu32*)(0x1ffff7e8);
stm32Id[1]=*(vu32*)(0x1ffff7ec);
stm32Id[2]=*(vu32*)(0x1ffff7f0);
return (stm32Id[0]>>1)+(stm32Id[1]>>2)+(stm32Id[2]>>3);
}
以字節(jié)(8bit)讀取
#define STM32_UNIQUE_ID_SIZE 12
u8 g_stm32_uniqueId[STM32_UNIQUE_ID_SIZE] = {0};
u8* util_readStm32UniqueCode(void) {
vu8 * addr = (vu8*)(0x1FFFF7E8);
u8 i;
for(i=0; i u8 v = *addr; g_stm32_uniqueId[i] = v; ++addr; } return g_stm32_uniqueId; }