STM32L0X3系列单片要96位唯一ID读取方法
简单点,直接上代码,需要了解详细信息参考官方文档:RM0367(34 设备电子签名)
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*/ 0x1FF80050, /*STM32L1唯一ID起始地址*/ 0x1FFF7590, /*STM32L4唯一ID起始地址*/ 0x1FF0F420}; /*STM32H7唯一ID起始地址*/ /*获取MCU的唯一ID*/ void GetSTM32MCUID(uint32_t *id,MCUTypedef type) { if(id!=NULL) { id[0]=*(uint32_t*)(idAddr[type]); id[1]=*(uint32_t*)(idAddr[type]+4); if(type==STM32L0_HRI) { id[2]=*(uint32_t*)(idAddr[type]+0x14); //STM32L0系列的要最后四个字节要偏20(0x14)字节 } else { id[2]=*(uint32_t*)(idAddr[type]+8); } } }
注意,不是连续读哦,要分为两个部分来读。
凯特网版权声明:以上内容允许转载,但请注明出处,谢谢!