freeelectron 发表于 2022-7-7 20:01

【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>&nbsp;</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="">&nbsp;</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&lt;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&lt;12;i++)
        {
                McuInfo.UniqueDeviceId=*(uint8_t*)(UID+i);
                printf(" %02x",McuInfo.UniqueDeviceId);
        }
        printf("]\r\n");
}
</code></pre>

<p style="">&nbsp;</p>

<p style=""><span style="font-size:24px;">4、测试</span></p>

<p style=""> &nbsp;</p>

<p style=""> &nbsp;可以看出,程序读取的和调试器调试读取的一致。 &nbsp;</p>

<p style="">&nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

秦天qintian0303 发表于 2022-7-8 11:03

<p>这些信息是存储在哪里的?可以直接像变量一样直接读取吗?不需要配置一些东西吗?</p>

lugl4313820 发表于 2022-7-8 11:26

这个可以用来干点什么事吗,科普一下呀,要不然取出来不知道干什么!

freeelectron 发表于 2022-7-8 11:51

lugl4313820 发表于 2022-7-8 11:26
这个可以用来干点什么事吗,科普一下呀,要不然取出来不知道干什么!

<p>&nbsp; &nbsp; 唯一id,版主你补充一下,你觉得能做什么?</p>

lugl4313820 发表于 2022-7-8 12:13

freeelectron 发表于 2022-7-8 11:51
&nbsp; &nbsp; 唯一id,版主你补充一下,你觉得能做什么?

<p>我原来用stm8做温度计时,有用来做器件的唯一标识,但是要取出来,再一个一个认证,也是一个麻烦事。如果大规模匹配,也真是一个麻烦。不知道其他网友有好的应用案例没有。我网上查找了一下,真还没有具体给出来的方案。</p>
页: [1]
查看完整版本: 【N32L43x评测】5、获取MCU96位UID、128位UCID