获取STM32 MCU的唯一ID
这里以STM32F103为例,简单运用了一下
c
#include "stm32f10x.h"
/*开辟一个数组来装96bit的ID号*/
u32 id[3] = {0xFFFFFFFF};
/*获取STM32 MCU的唯一ID*/
void GetSTM32MCUID(uint32_t *id)
{
if(id!=NULL)
{
id[0]=*(uint32_t*)(0x1FFFF7E8);
id[1]=*(uint32_t*)(0x1FFFF7E8+4);
id[2]=*(uint32_t*)(0x1FFFF7E8+8);
}
}
int main()
{
GetSTM32MCUID(id);
while(1)
{
//其他函数
}
return 0;
}
c
STM32不同系列的ID起始地址不同,如下所示:
1. 0x1FFFF7AC, /STM32F0唯一ID起始地址/
2. 0x1FFFF7E8, /STM32F1唯一ID起始地址/
3. 0x1FFF7A10, /STM32F2唯一ID起始地址/
4. 0x1FFFF7AC, /STM32F3唯一ID起始地址/
5. 0x1FFF7A10, /STM32F4唯一ID起始地址/
6. 0x1FF0F420, /STM32F7唯一ID起始地址/
7. 0x1FF80050, /STM32L0唯一ID起始地址/
8. 0x1FF80050, /STM32L1唯一ID起始地址/
9. 0x1FFF7590, /STM32L4唯一ID起始地址/
10. 0x1FF0F420; /STM32H7唯一ID起始地址/