大哥,你好。小弟遇见了和您相同的问题。我用的stc12c5a60s2单片机,不管我把数据全定义成data还是xdata

数据都会莫名其妙的改变数值。实际的字节数仅仅90字节,应该不会超过范围呀?我用的是stc的库。这几天一直再调,就是不行。麻烦您给指导下,小弟不胜感激。
unsigned char xdata bh[2];
unsigned char xdata sjzt[2];
unsigned char data num;
unsigned char data head;
unsigned char xdata zj_re_sbuf[8];
unsigned char xdata zj_re_sbuf2[8];
bit zj_re_flag;
unsigned char data k4_re_sbuf[12];
unsigned char data k4_re_sbuf2[12];
unsigned char data k4_num;
unsigned char data k4_head;
bit k4_re_flag;
bit k4_ok_flag;
unsigned char data dx_send_sbuf[16];
unsigned char data id_new[5];
unsigned char data led_time;
unsigned char data sjzt_hc;
unsigned char data sjzt_hc1;
bit busy,busy2;

定义成XDATA需要设置使1K的扩展RAM有效才可以,如果数据无缘无故的改变,不应该是定义变量的类型引起的,应该是程序里面改变,还是看看程序吧,如果因为变量太多的原因,编译就通不过。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-10-31
栈设的太小了太小了太小了太小了太小了太小了太小了,启动代码里是不是有设栈大小的(好久没弄了,不知道是不是)