读取SMT32的UID
不同的芯片有不同的设备ID和起始地址
STM32H743参考手册
SMT32U5参考手册
代码分析
#define STM32U5_UID 0x0BFA0700 /*UID地址*/
/**
* @brief 获取UID
* @param pdata
*/
void Get_STM32_UID(uint8_t *pdata)
{
for (int i = 0; i < 12; i++)
{
pdata[i] = *(uint8_t *)(STM32U5_UID+i);
}
for (int i = 0; i < 12; i++)
}
/**
* @brief 获取UID打印
* @param delay_ms
*/
void app_user_printf_uid(uint32_t delay_ms)
{
uint8_t uid[13];
Get_STM32_UID(uid);
printf("\r\n UID: \r\n");
for (int i = 0; i < 12; i++)
{
printf("%x",*(uint8_t*) (uid+i));
}
printf("\r\n");
HAL_Delay(delay_ms);
}
实验结果
可以看到串口输出的和内存里的地址 一样的
参考文章
STM32开发(13)----获取唯一设备标识符UID
STM32 进阶教程 9 - 芯片维一码(UID)读取
STM32HAL库-读取芯片维一码(UID)