不知道大家有没有遇到这样的情况:批量生产1K,其中有五六片 STM8L101F3 的 uid 在同一次上电的多次读出,它的值的前3个字节是变化的,变化有特定值,不是随机的。比如有这么一些数值: 14 80 00 2D 06 47 38 33 33 38 37 38 00 80 00 2D 06 47 38 33 33 38 37 38 14 80 40 2D 06 47 38 33 33 38 37 38 不同时候读出来的uid 不一致,对于程序来说基本上无法基于uid做一些算法。 下面是我读取 uid 的函数代码: #define ID_BaseAddr 0x4925 static unsigned char STM8L_ID[12] = {0}; unsigned char * Get_STM8L_UniqueID(void) { unsigned char i = 0; for (i=0; i<12; i++) { STM8L_ID[i] = *(unsigned char *)(ID_BaseAddr+i); } return STM8L_ID; } |
STM8S003F3U6 请求各位大佬支援,但是遇到如下问题。。。这样就一定是这颗芯片的问题吗?
STVD如何生成库文件
STM8 flash 库函数 startaddress = startaddress + ((uint32_t)BlockNum * FLASH_BLOCK_S
stm 8 flash 在RAM运行代码的问题,是不是库函数有问题 Library call (?sll32_l0_l0_a) from within a
STM 有能替代MCHC912B32CFUE8 / NXP的型号吗?
STM8S的CAN总线使用
STM8L151在使用DAC功能后严重发热
STM8 IIC SLAVE 400K
STM8S 定时器1互补输出pwm
STM8S003F3 NRST电压低,无法开机
你也可以通过工具直接看看,比方STVP看看,是不是 也会出现类似现象。
这些数据按理不会因为读访问而发生变化的。
谢谢回复。
我也是这么认为,不应该因为读访问而改变的。稍后我用 STVP 直接读一下,看看结果如何。
刚才测试了,用stvp不能读出非 Flash 地址空间的信息,改用IAR调试的方式来读写,如果读出来数据变化了,则跳到一个异常输出分支,并且在此设置断点,触发 IAR 来读取 uid 地址的数据,uid存放在 0x4925,下面的gif动图,能看到我执行了2次单步step-over操作的内存变化:
STM8L-uid变化
这论坛会有ST官方的工程师/技术支持关注吗?