CH32X033芯片片内的UID有4字节全为0xFF

您好!

由于设备需要一个USB序列号供上位机区分设备,我尝试使用CH32X033(批次1)芯片片内的UID。根据手册,该信息存储于0x1FFFF7E8、0x1FFFF7EC、0x1FFFF7F0三处共12字节。但现在读取了2片芯片(批次1)和另外1片芯片(批次0),都出现0x1FFFF7F0处4字节全为0xFF的情况。

读取使用的代码如下:

#define X035CHIPSN1 ((uint32_t)(*((volatile uint32_t *)(0x1FFFF7E8))))
#define X035CHIPSN2 ((uint32_t)(*((volatile uint32_t *)(0x1FFFF7EC))))
#define X035CHIPSN3 ((uint32_t)(*((volatile uint32_t *)(0x1FFFF7F0))))
。。。。。。
printf("%08x %08x %08x",X035CHIPSN1,X035CHIPSN2,X035CHIPSN3);

而对0x1FFFF7F0处4字节读取的结果是ffffffff。

我的问题是:

1 该现象是否是正常的?

2 如果该现象正常,是否该芯片只有8字节唯一UID可以使用?

3 如果该现象不正常,可能由于什么原因引起?三片芯片为三处购买,个人认为可能并非芯片为假冒品导致该问题。

您好,该现象是正常的,UID寄存器3为保留位,目前读取UID寄存器1和UID寄存器2有数据。


只有登录才能回复,可以选择微信账号登录