【N32L43x评测】5、获取MCU96位UID、128位UCID
<p><span style="font-size:24px;">1、前言</span></p><p>一般的mcu只有96位UID,N32L43x不仅仅包含96位UID,而且包含128位UCID,本文读取测试。</p>
<p> </p>
<p><span style="font-size:24px;">2、UCID与UID</span></p>
<p></p>
<p>96位UID信息,起始地址为0x1FFFF7F0;</p>
<p style="">128位UCID信息,起始地址为0x1FFFF7C0;</p>
<p style="">设备出厂的时候,已经固化在mcu内部的,用户不可更改。</p>
<p style=""> </p>
<p style=""><span style="font-size:24px;">3、程序读取</span></p>
<pre>
<code class="language-cpp">#define UCID 0x1FFFF7C0
#define UID 0x1FFFF7F0
struct McuInfo_t
{
uint8_t UniqueCustomerId;
uint8_t UniqueDeviceId;
}McuInfo;
void GetMcuInfo(void)
{
printf("Unique Customer Id:[");
for(uint8_t i=0;i<16;i++)
{
McuInfo.UniqueCustomerId=*(uint8_t*)(UCID+i);
printf(" %02x",McuInfo.UniqueCustomerId);
}
printf("]\r\n\r\n");
printf("Unique Device Id:[");
for(uint8_t i=0;i<12;i++)
{
McuInfo.UniqueDeviceId=*(uint8_t*)(UID+i);
printf(" %02x",McuInfo.UniqueDeviceId);
}
printf("]\r\n");
}
</code></pre>
<p style=""> </p>
<p style=""><span style="font-size:24px;">4、测试</span></p>
<p style=""> </p>
<p style=""> 可以看出,程序读取的和调试器调试读取的一致。 </p>
<p style=""> </p>
<p> </p>
<p> </p>
<p>这些信息是存储在哪里的?可以直接像变量一样直接读取吗?不需要配置一些东西吗?</p> 这个可以用来干点什么事吗,科普一下呀,要不然取出来不知道干什么! lugl4313820 发表于 2022-7-8 11:26
这个可以用来干点什么事吗,科普一下呀,要不然取出来不知道干什么!
<p> 唯一id,版主你补充一下,你觉得能做什么?</p>
freeelectron 发表于 2022-7-8 11:51
唯一id,版主你补充一下,你觉得能做什么?
<p>我原来用stm8做温度计时,有用来做器件的唯一标识,但是要取出来,再一个一个认证,也是一个麻烦事。如果大规模匹配,也真是一个麻烦。不知道其他网友有好的应用案例没有。我网上查找了一下,真还没有具体给出来的方案。</p>
页:
[1]