本帖最后由 yangyurong 于 2025-1-7 18:32 编辑
每个MCU单片机DSP或者FPGA等等芯片,它们都有一个独一无二的ID型号,就像我们人一样,每个成年人都有一个身份*ID号,用来识别
每个人的个人信息,即使是同卵双胞胎,基因完全相同,两者的身份*ID号也绝对不一样。
本篇测评就是用来读取极海G32A1465的身份*ID号,它有更专业的名称叫做UID,是一个128位的值。
它属于在头文件中也有定义,起始地址为0x40048000
唯一标识 127_96 寄存器 偏移地址0x54
唯一标识 95_64 寄存器 偏移地址0x58
唯一标识 63_32 寄存器 偏移地址0x5C
唯一标识 31_0 寄存器 偏移地址0x60
所以在KEIL工程中,添加如下代码
#define UID_BASE 0x40048000
uint32_t *idBase0 = (uint32_t*)(UID_BASE + 0x54);// UID127_96
uint32_t *idBase1 = (uint32_t*)(UID_BASE + 0x58);// UID95_64
uint32_t *idBase2 = (uint32_t*)(UID_BASE + 0x5c);// UID63_32
uint32_t *idBase3 = (uint32_t*)(UID_BASE + 0x60);// UID31_0
printf("UID %lx-%lx-%lx-%lx\n", *idBase0, *idBase1, *idBase2, *idBase3);
烧录板子,打开串口助手,查看UID的值
我手上两块板子的ID号是不一样的
UID 401a1-50364248-38362d07-310066
UID 401a1-50364248-38362d07-180056可以看到只是最后的32为值不一样
|