u8 k;
u8 k2;
k = 0;
k2 = 0;
Send_Data_To_UART0(k);
Send_Data_To_UART0(k2);
k++;
k2++;
Send_Data_To_UART0(k);
Send_Data_To_UART0(k2);
//这里循环中,k的值一直为5,无法改变,导致了死循环
for (k=0;k<10;k++)
{
Send_Data_To_UART0(k);
Timer1_Delay10ms(10); //让输出慢一点
}
变量k在循环里不知道为什么,被锁定为5,正常程序应该输出0123456789,但实际上程序死循环了不停地输出5。
解决方法其实也很多,把k定义在idata里,或者随便删掉其它一些和这段程序无关的代码,输出就正常了,其它代码不多,仔细检查也没发现数组越界之类的问题。
希望不是简单地解决问题,而是搞清楚为什么会出现这个问题,是系统的BUG吗?
打开项目直接编译就可以了,程序会在串口以9600bps速度不停输出5。
哪位高手能帮忙看一下,问题解决后奉上100元辛苦费,本人菜鸟一枚,对这问题的难度没什么概念,如果问题很难需要加钱请私信或QQ聊
|