找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

求助:数组刚初始化后打印出的数据就变了

[复制链接]
admin 发表于 2012-9-2 09:36:03 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
在调试一个程序时发现数组的最后2位不对劲,就先初始化后就用串口打印出来看,结果发现后2位已经变了,相关语句如下:
int xdata record_t[8]={2000,2100,2200,2300,2400,2500,2600,2700};//随便初始化的值
init_system();
InitUART();
TI=1;
printf("t[0]~t[7]=%d %d %d %d %d %d %d %d\n",record_t[0],record_t[1],record_t[2],record_t[3],record_t[4],record_t[5],record_t[6],record_t[7]);
然后串口读出的结果是:
t[0]~t[7]=2000 2100 2200 2300 2400 2500 3072 0
这是为什么呢?调用的两个初始化函数应该没改变什么啊,如下。求大虾解答!
void init_system() //初始化系统
{
TMOD = 0x01; //T0工作于16位定时器模式
TL0 = 0;
TH0 = 0;
AUXR|=0x80; //T0不分频
EA =1 ; //中断允许
}

void InitUART (void)
{
SCON = 0x50; // SCON: 模式 1, 8-bit UART, 使能接收
TMOD |= 0x20; // TMOD: timer 1, mode 2, 8-bit 重装
TH1=0xfd;
TR1 = 1; // TR1: timer 1 打开
EA = 1; //打开总中断
}
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-11-24 13:45 , Processed in 0.060904 second(s), 12 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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