您好!
由于设备需要一个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 如果该现象不正常,可能由于什么原因引起?三片芯片为三处购买,个人认为可能并非芯片为假冒品导致该问题。
热门产品 :
CH32X035: 32位USB+USB PD单片机