下面这个程序有时候对模块写数据是正确的,可有时候却写不进去!有时当我从键盘输入完5个字节的数据后,按下确认键对模块进行写数据的时候可以写进去,但是有时候却不行!所以我想肯定有个极其隐蔽的BUG存在,我调试了好久都没有找出原因,所以现在拜求程序高手指点一下!
目前程序出现的现象是:下面这个程序有时候对模块写数据是正确的,可有时候却写不进去!当我从键盘输入完5个字节的数据后,按下确认键对模块进行写数据的时候有时候可以写进去,但是有时候却不行!望程序高手们指教!!先谢过各位啦!
void main()
{
uchar i;
uchar temp1=0;
uchar temp2=0;
while(1)
{
for(i=0;i<5;i++)
{
KeyScan(); //自定义的键盘扫描函数,此函数无误
temp1=keyvalue; //按下第一个键后赋给temp1
KeyScan();
temp2=keyvalue;
if(0<=temp1<=9&&0<=temp2<=9) //键值在0-9执行下语句
sendbuff[i]=(temp2+temp1*10); //sendbuff[i]的值在0-99之间
}
KeyScan(); //调用键盘扫描函数
if(keyvalue=='E') //若按下'E'键,执行下面语句
{
WriteData(sendbuff,5); //调用自定义WriteData函数;
i=0; //清零复位
temp1=0; //清零复位
temp2=0; //清零复位
}
}
} |