STM32唯一ID读取方法
扫描二维码
随时随地手机看文章
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; }