STM32唯一ID读取方法

版权声明:本文为小生原创,转载请注明出处,好吗好的,善哉善哉!!! https://blog.csdn.net/u010650845/article/details/77868805

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<STM32_UNIQUE_ID_SIZE; ++i) {
        u8 v = *addr;
        g_stm32_uniqueId[i] = v;
        ++addr;
    }
    return g_stm32_uniqueId;
}

猜你喜欢

转载自blog.csdn.net/u010650845/article/details/77868805