在stm32f1xx_hal.c文件中由读取ID号的子函数,不同单片机的UID_BASE不同,本单片机用的是STM32F103CBT6,跳转之后可以看到地址为:0x1FFFF7E8
在程序中只需定义一个数组调用读取ID的函数即可
uint32_t UID[3];
while(1)
{
UID[0] = HAL_GetUIDw0();
UID[1] = HAL_GetUIDw1();
UID[2] = HAL_GetUIDw2();
printf("0x%x\r\n",UID[0]);
printf("0x%x\r\n",UID[1]);
printf("0x%x\r\n",UID[2]);
}
与ST-link读出来的ID号一样
将三组十六进制数拼在一起转换成二进制,刚好为96位ID