[STM32] 究竟如何读STM32的UID ?

[复制链接]
496|7
 楼主 | 2019-6-9 12:52 | 显示全部楼层 |阅读模式
本帖最后由 dabendan001 于 2019-6-9 15:50 编辑

方法一:
char * GetChipUniqueID_Str_STM32F10x(char* stm32id_StrBuf_32char )
{   
    uint32_t chipUniqueID32[3];
    chipUniqueID32[2] = *(__IO uint32_t*)(0X1FFFF7F0);
    chipUniqueID32[1] = *(__IO uint32_t*)(0X1FFFF7EC);
    chipUniqueID32[0] = *(__IO uint32_t*)(0X1FFFF7E8);

    snprintf(stm32id_StrBuf_32char,32,"0x%X-%X-%X", chipUniqueID32[0],chipUniqueID32[1],chipUniqueID32[2]);
    return stm32id_StrBuf_32char;
}

读得的UID是:0x5DBFF30-43084562-43084562

方法二:
uint32_t * GetSTM32MCUIDPMing(uint32_t *id,MCUTypedef type)
{
        // type =1, idAddr[type] =0x1FFFF7E8;
        if(id!=NULL)
        {
                id[0]=*(uint32_t*)(idAddr[type]);
                id[1]=*(uint32_t*)(idAddr[type]+4);
                id[2]=*(uint32_t*)(idAddr[type]+8);
        }
        
        //printf("\r\nSTM32_ID_Str(inside):0X%X-%X-%X\r\n",id[0],id[1],id[2]);
        return id;
}

读得的UID是:0x20009068-8000165-800016D;

为何 不相同呢??(这两个函数,写在在工程中不同的.C文件中)

使用特权

评论回复
| 2019-6-10 11:30 | 显示全部楼层
id[0]=*(uint32_t*)(idAddr[type]);   应该是   id[0]=*(uint32_t*)(&idAddr[type]);

使用特权

评论回复
| 2019-6-11 08:06 | 显示全部楼层
除了指针不对,后面加4和加8也加多了。

使用特权

评论回复
 楼主 | 2019-6-14 00:06 | 显示全部楼层
airwill 发表于 2019-6-10 11:30
id[0]=*(uint32_t*)(idAddr[type]);   应该是   id[0]=*(uint32_t*)(&idAddr[type]);

谢谢。我再试试。

使用特权

评论回复
 楼主 | 2019-6-14 00:07 | 显示全部楼层
linqing171 发表于 2019-6-11 08:06
除了指针不对,后面加4和加8也加多了。

我看网上好多贴子都是加4和加8呢??总共96BIT……

使用特权

评论回复
 楼主 | 2019-6-15 11:30 | 显示全部楼层
airwill 发表于 2019-6-10 11:30
id[0]=*(uint32_t*)(idAddr[type]);   应该是   id[0]=*(uint32_t*)(&idAddr[type]);

实践证明,加“&”与不加,值相同。

使用特权

评论回复
| 2019-6-15 16:55 | 显示全部楼层
可能吧, 不知道你的 MCUTypedef  是怎么定义的

使用特权

评论回复
 楼主 | 2019-6-16 22:48 | 显示全部楼层
本帖最后由 dabendan001 于 2019-6-16 22:50 编辑
airwill 发表于 2019-6-15 16:55
可能吧, 不知道你的 MCUTypedef  是怎么定义的

我是参照这里的代码写的。
https://blog.csdn.net/foxclever/article/details/80294516
(向版主表示歉意。纯技术交流。)

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

关闭

热门推荐上一条 /6 下一条

在线客服 快速回复 返回顶部 返回列表