STM32唯一设备标识符UID的读取

1.UID的介绍

STM32微控制器(MCU)的唯一UID(Unique ID)是一个独特的标识符,用于区分不同的芯片。每个STM32芯片都有一个唯一的UID,由96位的数据组成。这个唯一UID不是由用户编程设置的,而是在制造过程中由芯片上的专用电路生成的。

STM32 MCU的唯一UID通常由三个32位的数据组成:X、Y和W。这些数据可以通过MCU的FLASH寄存器访问。以下是各个部分的简要介绍:

  1. X部分(32位):它包含制造商标识和系列号。其中包含了制造商ID、产品系列ID和产品版本ID等信息。

  2. Y部分(32位):它包含制造日期和批次号。其中包含了制造日期、批次号和一些其它相关信息。

  3. W部分(32位):这是Firmware Revision ID(固件版本标识符),用于描述芯片的固件版本信息。

通过读取这些UID部分的数值,您可以获得用于区分不同STM32芯片的独特ID。可以使用芯片厂商提供的驱动库或固件库中的API来读取UID,以便在应用程序中使用这些ID进行唯一性标识或安全验证等操作。

需要注意的是,UID是在芯片制造过程中生成的,因此在同一型号的芯片中是唯一的。但是,在不同的STM32芯片型号之间,UID可能会有所不同。因此,在处理UID时应该小心,避免将它用于跨型号或不适当的用途。

2.部分MCU的资料:

3.获取UID的代码 

void Secrecy_GetUID(uint32_t * pBuf)
{
	pBuf[0] = *(uint32_t*)(0x1FFF7A10);
	pBuf[1] = *(uint32_t*)(0x1FFF7A14);
	pBuf[2] = *(uint32_t*)(0x1FFF7A18);
    printf("pBuf[0]=%#x\n",pBuf[0]);
    printf("pBuf[1]=%#x\n",pBuf[1]);
    printf("pBuf[2]=%#x\n",pBuf[2]);
	 
}

这是F407的UID地址,不同型号的更改地址就可以了

 4.运行结果

用串口助手打印的结果如下:

  • 6
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值