STM32的全系列MCU的ID号的地址及读取方法

在STM32的全系列MCU中均有一个96位的唯一设备标识符 。在ST的相关资料中,对其功能的描述有3各方面:
用作序列号(例如 USB 字符串序列号或其它终端应用程序)
在对内部 Flash 进行编程前将唯一 ID 与软件加密原语和协议结合使用时用作安全密钥以提高 Flash 中代码的安全性
激活安全自举过程等
在资料中对其特性的描述是:96 位的唯一设备标识符提供了一个对于任何设备和任何上下文都唯一的参考号码 。用户永远不能改变这些位 。96 位的唯一设备标识符也可以以单字节/半字/字等不同方式读取,然后使用自定义算法连接起来 。
想要读取唯一ID,就需要知道它的存储地址,在不同系列的MCU中地址是有差别的,我们查询了部分MCU的资料并将其总结如下:

STM32的全系列MCU的ID号的地址及读取方法

文章插图
void (void)
{
//read CPU ID,,add+4
CpuID[0] = *(__IO u32 *)();
CpuID[1] = *(__IO u32 *)();
CpuID[2] = *(__IO u32 *)();
}
int main(void)
{

(“rn###########CPU ID:%X-%X-%X\r\n”,CpuID[0],CpuID[1],CpuID[2]);

【STM32的全系列MCU的ID号的地址及读取方法】}