STM32唯一ID
STM32微控制器有一个96位的产品唯一身份标识,在任何情况下都是唯一且不允许修改
这个96位的产品唯一身份标识,可以以字节(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);
}
以字节(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;
}
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』