日常积累

局部变量的初值,是一个乱值,不确定的,不进行赋初值会有异常现象

int main()
{
//	unsigned char x;
	unsigned char dat1,dat2;
	unsigned char dat1_min_h,dat1_min_l,dat2_hone_h,dat2_hone_l;
	unsigned char dat1_min_h_log=0;
	unsigned char dat1_min_l_log=0;
	unsigned char dat2_hone_h_log=0;
	unsigned char dat2_hone_l_log=0;
	SysTick_Init();
	GPIO_Configuration();
	Usart1_Init(115200);
//	Usart2_Init(115200);
	IIC_Init();
	ht1632_init();
	ht1632_clr();
//	DHT11_Start();
//	time_set(0,17,10,0);
//	USART_SendStr(USART2,"AT\r\n");
	SysTick_Delay_Ms(4000);
	while(1)
	{	
		dian_dis_on();

		dat1=ADXL345_RD_Reg(0x01);
		dat2=ADXL345_RD_Reg(0x02);
		printf("\r\n%x,%x\r\n",dat1,dat2);
		dat2_hone_h=dat2/16;
		dat2_hone_l=dat2%16;
		dat1_min_h=dat1/16;
		dat1_min_l=dat1%16;
		if(dat2_hone_h==dat2_hone_h_log)
			wei_dis(0X00,dat2_hone_h);
		else
		{	
			wei_w(0X00, dat2_hone_h_log);
			wei_d(0X00, dat2_hone_h);
			dat2_hone_h_log=dat2_hone_h;
		}
		if(dat2_hone_l==dat2_hone_l_log)
			wei_dis(0X0E,dat2_hone_l);
		else
		{	
			wei_w (0X0E,dat2_hone_l_log);
			wei_d (0X0E,dat2_hone_l);
			dat2_hone_l_log=dat2_hone_l;
		}
		if(dat1_min_h==dat1_min_h_log)
			wei_dis(0X22,dat1_min_h);
		else
		{	
			wei_w (0X22,dat1_min_h_log);
			wei_d (0X22,dat1_min_h);
			dat1_min_h_log=dat1_min_h;
		}
		if(dat1_min_l==dat1_min_l_log)
			wei_dis(0X30,dat1_min_l);
		else
		{	
			wei_w (0X30,dat1_min_l_log);
			wei_d (0X30,dat1_min_l);
			dat1_min_l_log=dat1_min_l;
		}
			SysTick_Delay_Ms(400);
			dian_dis_off();
			SysTick_Delay_Ms(500);}

下面这四个局部变量,由于没有赋初值,在与函数内其他变量比较的时候,执行了类似wei_w (0X30,dat1_min_l_log);这个语句,显示变量值,但是可能此时变量值已经超出显示函数的代入值,导致异常现象。

	unsigned char dat1_min_h_log=0;
	unsigned char dat1_min_l_log=0;
	unsigned char dat2_hone_h_log=0;
	unsigned char dat2_hone_l_log=0;

全局变量与局部变量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值