单片程序一个死循环的问题。求大神,

2019-07-15 12:17发布

一个while死循环,程序如下,为什么P0^0,从0变到1,回不到0了,求各位大神帮忙一下

void main (void)
{
          VLCInit(COM1);
        while( 1)
       {
           TX_Send=0;      //TX_Send=P0^0
           KeyDown();       //,按键扫描,读取键值赋值给KeyValue
           if(KeyValue==0)
           {       
          TX_Send=1;
                  while(KeyValue==0)
                  
                   VLCWrite("1",5,1);//发送字符1,发送5个字符,采用信道1
                  
           }
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
李春明
1楼-- · 2019-07-15 16:28
while(KeyValue==0),你在这句下面点个灯,然后在编译烧录运行一下看看灯亮不亮在分析,不亮就好说了,亮那就奇了怪了
这个是坛友解释的 非常在理 最佳答案
HARRY007
2楼-- · 2019-07-15 21:26
while(KeyValue==0)里的KeyValue已经等于0了,所以就是0了啊……因为是while卡死在这句所以你的
KeyDown();       //,按键扫描,读取键值赋值给KeyValue就执行不到了。KeyValue就刷新不了……
woai135923
3楼-- · 2019-07-15 21:42
 精彩回答 2  元偷偷看……
李春明
4楼-- · 2019-07-16 01:19
你少了一个}符号呀              
woai135923
5楼-- · 2019-07-16 05:02
王栋春 发表于 2016-12-22 20:49
你少了一个}符号呀

  这个我只是发帖子的时候忘记写进去了  程序是有的 不然连编译都不行了  更不用说测试了
wulinwl
6楼-- · 2019-07-16 07:43
试试                        TX_Send=1;
                        while(!KeyValue)                       
                        VLCWrite("1",5,1);//发送字符1,发送5个字符,采用信道1

一周热门 更多>