elife 发表于 2023-8-25 11:41

STC单片机读取唯一ID号都为0xFF.

stc8a8k64D, eeprom设置为62K,烧写程序后,程序里读取唯一ID号的4,5,6位,都去都为0xFF.如果烧写时勾选 在程序的结束处添加重要测试参数,读取的数据会不一样,但烧写两个IC,发现读取的数据相同。请问有碰到过这个问题吗?               读取方式为: disp1=(*(u8 code *)0xFDE4)>>4;disp2=(*(u8 code *)0xFDE4)&0x0F;请帮看看是什么问题。

LcwSwust 发表于 2023-8-25 11:57

为何8位数据只取4位呢.

STCMCUNT015 发表于 2023-8-25 13:13


elife 发表于 2023-8-25 13:55

多谢楼上各位,取4位是为了显示HEX值,数码管显示0-F, 资料上的地址也是对的,为什么如果编程时不勾选 在程序的结束处添加重要测试参数这个选项,就是0xff,如果勾选了,也会有其他数据,但烧写两个芯片,显示的数据完全一样?按说唯一号,应该有区别。

LcwSwust 发表于 2023-8-25 14:26

本帖最后由 LcwSwust 于 2023-8-25 14:29 编辑

elife 发表于 2023-8-25 13:55
多谢楼上各位,取4位是为了显示HEX值,数码管显示0-F, 资料上的地址也是对的,为什么如果编程时不勾选 在程 ...
地址不对,0xFDE4是xdata中的地址,且EAXFR位要置1;
P_SW2|=0x80;
disp1=(*(u8 xdata *)0xFDE4)>>4;

若要从FLASH中取值,则各型号的地址不一样.
建议看下例程.








elife 发表于 2023-8-25 14:39

非常感谢楼上,确实老眼昏花了。现在测试好了,看错了。

coody 发表于 2023-8-25 15:00

放在CHIPID中,木问题。

elife 发表于 2023-8-25 17:06

借问一下各位高手,前几天看到有个STC的UCOS的贴子,正准备下载,还没来得及,后来怎么也找不到了,请问谁有链接的,发来学习一下。
页: [1]
查看完整版本: STC单片机读取唯一ID号都为0xFF.