HK32F031F6 读UID芯片挂了
如题: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连接不了芯片{:sweat:}{:sweat:}
#define UID_BASE ((uint32_t)0x1FFFF7ACU)
图中的 0x1FFFF7AC 哪里有数据...到是0x1FFFF7B8有一个,哎
发现一个秘密,这个芯片官方说容量32K,但是内部有64K,关键还能用啊!
434878450 发表于 2021-3-26 19:50
#define UID_BASE ((uint32_t)0x1FFFF7ACU)
图中的 0x1FFFF7AC 哪里有数据...到是0x1FFFF7 ...
CpuID=*(__IO u32*)(0x1FFFF7AC);
CpuID=*(__IO u32*)(0x1FFFF7B0);
CpuID=*(__IO u32*)(0x1FFFF7B4); 学习到了,不错的方法。 感谢楼主的分享,不错的一次体验操作的。
HSXP063 发表于 2021-3-31 19:05
CpuID=*(__IO u32*)(0x1FFFF7AC);
CpuID=*(__IO u32*)(0x1FFFF7B0);
CpuID=*(__IO u32*)(0x1FFF ...
我读出来这个位置为没有数据,要往上移三个dword,试了不同的芯片确实不一样,应该就是UID了,我的初衷是获取UID作随机种子,往通信里随机插入广播.
页:
[1]