3、12月19日 全局变量的值会变的原因
定义了一个全局变量:char Chlchar[1]={0};
结果发现在程序的运行当中,即使没有对它进行赋值,它的值一样会变。
分析发现:原来是UART3_RX_BUF[UART3_RX_MAXLen] 填满后没有做UART3_RX_Len=0;处理,
导致其越界了依然继续填装,占用了Chlchar[1]的空间。
在程序中加了这一句后,问题解决:
if(UART3_RX_Len>=UART3_RX_MAXLen)
UART3_RX_Len=0;
接收程序:
UART3_RX_BUF[UART3_RX_Len] = UCA3RXBUF;
UART3_RX_Len++;
if(UART3_RX_Len>=UART3_RX_MAXLen)
UART3_RX_Len=0;
回想:以前定义的一个全局数组在运行中,单元内的内容出现期望外的值,估计和这个有关。