找回密码
 立即注册
查看: 283|回复: 0

新人请教,完全没有思路了

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:5
  • 最近打卡:2024-08-17 16:41:35

16

主题

25

回帖

270

积分

中级会员

积分
270
发表于 2024-5-9 13:33:10 | 显示全部楼层 |阅读模式

芯片是STC32G12K128
定义了四个变量


unsigned int xdata M2N  _at_ 0x0008;
  unsigned int xdata M2NH  _at_ 0x0008;  //这里写错,应该用char 而不是int,不过结果很神奇
  unsigned int xdata M2NL  _at_ 0x0009;

unsigned int xdata M2N2 _at_ 0x000A;
  unsigned int xdata M2N2H _at_ 0x000A;
  unsigned int xdata M2N2L  _at_ 0x000B;

unsigned int xdata M2N3 _at_ 0x000C;
  unsigned int xdata M2N3H  _at_ 0x000C;
  unsigned int xdata M2N3L  _at_ 0x000D;

unsigned int xdata M2N4 _at_ 0x000E;
  unsigned int xdata M2N4H  _at_ 0x000E;
  unsigned int xdata M2N4L  _at_ 0x000F;


赋值后,

M2N=0x8000;         
M2N2=0x7CB3;                                                                                                                                  
M2N3=0x8000;
串口输出        
AURT(0XAA);AURT(M2N3>>8);AURT(M2N3);AURT(M2N2>>8);AURT(M2N2);AURT(M2N>>8);AURT(M2N);AURT(0XAA);



写入EEPROM,接着读出
EEPROM_cha(0x000200);
EEPROM_XIE(0x000200,0x0008,8);  //将0x0008-0x000F 写到EEPROM的 512-519位       void EEPROM_XIE(unsigned long addr,  unsigned char xdata *DataAddress,   unsigned int number)

EEPROM_du(0x000200,0x0008,8);   //将EEPROM512-519位读到 0x0008-0x000F             void EEPROM_du(unsigned long addr,  unsigned char xdata *DataAddress,   unsigned int number)

串口输出:

AURT(0XBB);   AURT(M2N3>>8);AURT(M2N3);   AURT(M2N2>>8);AURT(M2N2);   AURT(M2N>>8);AURT(M2N);    AURT(0XBB);
AURT(0XCC);   AURT(M2N3H);AURT(M2N3L);     AURT(M2N2H);AURT(M2N2L);      AURT(M2NH);AURT(M2NL);       AURT(0XCC);

想法是AA串应该与BB串相同,与CC串不同,因为CC串变量 高位低位用的不是char型,而是int
结果:很神奇的是AA串与BB串不同,但是与CC串相同 微信图片_20240509132658.png
读写EEPROM用的是手册案例里面的函数,请问一下是哪里出了问题?

回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 04:14 , Processed in 0.124673 second(s), 48 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表