打印
[技术问答]

HK32F031F6 读UID芯片挂了

[复制链接]
703|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
如题:
        printf("UID1 = 0x%X\r\n",*(uint32_t*)UID_BASE);
        printf("UID2 = 0x%X\r\n",*(uint32_t*)(UID_BASE+4));
        printf("UID3 = 0x%X\r\n",*(uint32_t*)(UID_BASE+8));
这里读出来的都是0xFFFFFFFF!怎么回事?

        printf("UID1 = 0x%X\r\n",*(__IO uint32_t*)UID_BASE);
        printf("UID2 = 0x%X\r\n",*(__IO uint32_t*)(UID_BASE+4));
        printf("UID3 = 0x%X\r\n",*(__IO uint32_t*)(UID_BASE+8));
以上加了个__IO,芯片直接挂了,JLINK连接不了芯片

使用特权

评论回复

相关帖子

沙发
434878450|  楼主 | 2021-3-26 19:50 | 只看该作者
#define UID_BASE              ((uint32_t)0x1FFFF7ACU)

图中的 0x1FFFF7AC 哪里有数据...  到是0x1FFFF7B8有一个,哎
发现一个秘密,这个芯片官方说容量32K,但是内部有64K,关键还能用啊!






捕获.PNG (31.31 KB )

捕获.PNG

使用特权

评论回复
板凳
HSXP063| | 2021-3-31 19:05 | 只看该作者
434878450 发表于 2021-3-26 19:50
#define UID_BASE              ((uint32_t)0x1FFFF7ACU)

图中的 0x1FFFF7AC 哪里有数据...  到是0x1FFFF7 ...

CpuID[0]=*(__IO u32*)(0x1FFFF7AC);
CpuID[1]=*(__IO u32*)(0x1FFFF7B0);
CpuID[2]=*(__IO u32*)(0x1FFFF7B4);

使用特权

评论回复
地板
单片小菜| | 2021-4-1 15:50 | 只看该作者
学习到了,不错的方法。

使用特权

评论回复
5
里面有晴雨| | 2021-4-1 17:08 | 只看该作者
感谢楼主的分享,不错的一次体验操作的。

使用特权

评论回复
6
434878450|  楼主 | 2021-4-3 11:54 | 只看该作者
HSXP063 发表于 2021-3-31 19:05
CpuID[0]=*(__IO u32*)(0x1FFFF7AC);
CpuID[1]=*(__IO u32*)(0x1FFFF7B0);
CpuID[2]=*(__IO u32*)(0x1FFF ...

我读出来这个位置为没有数据,要往上移三个dword,试了不同的芯片确实不一样,应该就是UID了,我的初衷是获取UID作随机种子,往通信里随机插入广播.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

20

帖子

2

粉丝