找回密码
 注册
关于网站域名变更的通知
查看: 832|回复: 11
打印 上一主题 下一主题

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

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-5-17 10:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 罗斯 于 2019-5-17 10:41 编辑
3 Z5 R# L) ?9 b6 x, }7 m6 I2 ]# I/ Z* P! s- ?* m9 @; w8 A+ x
单片程序一个死循环的问题。求大神帮助
6 J# x4 A& A, p0 Z4 {$ }; K& z# o. e7 n& G* P% L
一个while死循环,程序如下,为什么P0^0,从0变到1,回不到0了,求各位大神帮忙一下
; i* M, e; s+ `
' |4 s# {3 f, D, w4 P& vvoid main (void) 2 r3 U+ q5 ~! {+ t' ^4 D
{
* N9 z8 f4 ~" o& ?% X          VLCInit(COM1);+ T' q! v3 \% x2 v( J4 c
        while( 1)
+ I* G; p  Z. W6 @       {5 z& H5 _( w  Y% p* K! M* ^$ f
           TX_Send=0;      //TX_Send=P0^04 z/ V- N; f$ r
           KeyDown();       //,按键扫描,读取键值赋值给KeyValue
$ n" O4 v3 M/ p& E           if(KeyValue==0)9 N% f4 s' V* ~6 U
           {      
. W2 z. y8 Q( _1 ?2 H0 ?2 b) K7 c6 s          TX_Send=1;* t$ M8 C# T% j; c
                  while(KeyValue==0)
7 c/ D7 z( h, a. Q' ]                  3 g9 U" x. c% ^
                   VLCWrite("1",5,1);//发送字符1,发送5个字符,采用信道1
. g7 J+ p* p: f                  0 Q: ?5 f) {7 C- @( K3 G  E
           }+ x- J2 r8 t( c- I2 G
}# \- O0 ^. [5 L+ G

该用户从未签到

2#
发表于 2019-5-17 10:59 | 只看该作者
while(KeyValue==0)里的KeyValue已经等于0了,所以就是0了啊……因为是while卡死在这句所以你的5 [2 G' u) p; ~- y) ]) I! o
KeyDown();       //,按键扫描,读取键值赋值给KeyValue就执行不到了。KeyValue就刷新不了……

点评

我也试过把while去掉 还是一样~  详情 回复 发表于 2019-5-17 11:18

该用户从未签到

3#
 楼主| 发表于 2019-5-17 11:18 | 只看该作者
kinidrily 发表于 2019-5-17 10:59
. V! x1 U2 @/ y* Z' Cwhile(KeyValue==0)里的KeyValue已经等于0了,所以就是0了啊……因为是while卡死在这句所以你的
1 \8 d! t# z- R1 E( j4 _/ ?+ i6 @KeyDown() ...
' U% \  a& h- {5 X8 G' X1 S$ q# u
我也试过把while去掉  还是一样~; L& G/ i  [4 X

点评

你没听明白我的意思啊……死在while(KeyValue==0)这句话,你的KeyValue如何变成真????,while(KeyValue==0)之前调用了一次KeyDown(); 刷新了一次KeyValue的值,之后就再也没有刷新了[/backcolor]  详情 回复 发表于 2019-5-17 11:37

该用户从未签到

4#
发表于 2019-5-17 11:20 | 只看该作者
试试                        TX_Send=1;
* d, n7 {& Q9 _% g( @2 E                        while(!KeyValue)                        
# \7 S' y9 l& V' R4 m' V; O! O                        VLCWrite("1",5,1);//发送字符1,发送5个字符,采用信道1

点评

还是不行~  详情 回复 发表于 2019-5-17 11:26

该用户从未签到

5#
 楼主| 发表于 2019-5-17 11:26 | 只看该作者
gaoxings 发表于 2019-5-17 11:20+ I8 Z6 a7 q0 l- y9 l1 K. H* j
试试                        TX_Send=1;4 ?5 z- a. i& ~( k6 @
                        while(!KeyValue)                    ...
$ u0 T1 |: I- A/ y% r
还是不行~
9 B: w3 J6 ~9 }0 z& ?

点评

看来你要在按键扫描程序里找问题。因为while(KeyValue==0)括号里一直为真就不能跳出,下面的语句也改变不了其值,就死在这里。不太明白你这样编程的用意。  详情 回复 发表于 2019-5-17 11:30

该用户从未签到

6#
发表于 2019-5-17 11:30 | 只看该作者
罗斯 发表于 2019-5-17 11:26, w, S. U$ @$ p/ V5 {9 ?0 ?
还是不行~
% f: |- `/ ^7 J- j1 I  @$ I
看来你要在按键扫描程序里找问题。因为while(KeyValue==0)括号里一直为真就不能跳出,下面的语句也改变不了其值,就死在这里。不太明白你这样编程的用意。
3 a4 @  r4 o  E4 A0 n

点评

我试过用一个扫描按键的来重新写一个主函数。。。 就是按下 P0^0 从0变到1 两秒后变成0 是可以的 而且试过了 每个按键都是可以的  详情 回复 发表于 2019-5-17 11:36

该用户从未签到

7#
 楼主| 发表于 2019-5-17 11:36 | 只看该作者
gaoxings 发表于 2019-5-17 11:30
0 H6 r- W- E# k' ?! e) t9 L9 n看来你要在按键扫描程序里找问题。因为while(KeyValue==0)括号里一直为真就不能跳出,下面的语句也改变不 ...
0 y  Z8 O6 L# e# V
我试过用一个扫描按键的来重新写一个主函数。。。    就是按下    P0^0  从0变到1  两秒后变成0      是可以的      而且试过了  每个按键都是可以的) A( y' ~2 r# i8 Z( {+ T

该用户从未签到

8#
发表于 2019-5-17 11:37 | 只看该作者
罗斯 发表于 2019-5-17 11:186 @$ y! O8 y) E+ M8 p7 D0 c9 p* `; o
我也试过把while去掉  还是一样~

7 _% I( t+ g, V你没听明白我的意思啊……死在while(KeyValue==0)这句话,你的KeyValue如何变成真????,while(KeyValue==0)之前调用了一次KeyDown(); 刷新了一次KeyValue的值,之后就再也没有刷新了  E7 B+ O2 b! _
/ o7 e: ^" o% \  B$ v) M" @' P( U

该用户从未签到

9#
发表于 2019-5-17 14:20 | 只看该作者
while(KeyValue==0),你在这句下面点个灯,然后在编译烧录运行一下看看灯亮不亮在分析,不亮就好说了,亮那就奇了怪了

点评

灯亮了 可能是卡在那个VLCWrite 那个子函数里面 ~~~~ 忧伤  详情 回复 发表于 2019-5-17 14:24

该用户从未签到

10#
 楼主| 发表于 2019-5-17 14:24 | 只看该作者
helendcany 发表于 2019-5-17 14:201 u! Q3 Z! v5 [
while(KeyValue==0),你在这句下面点个灯,然后在编译烧录运行一下看看灯亮不亮在分析,不亮就好说了,亮那 ...
4 N# m0 q& M. U7 K0 d) a1 y
灯亮了   可能是卡在那个VLCWrite  那个子函数里面 ~~~~  忧伤
- W7 |; W: H# |# g; l

点评

搞软件一定细心再细心 同样跟着楼主学习一下相关经验  详情 回复 发表于 2019-5-17 14:39

该用户从未签到

11#
发表于 2019-5-17 14:39 | 只看该作者
罗斯 发表于 2019-5-17 14:24$ L( S0 h  A- U& `" z
灯亮了   可能是卡在那个VLCWrite  那个子函数里面 ~~~~  忧伤

1 i! d" K* ~" L# Z" ^4 J搞软件一定细心再细心    同样跟着楼主学习一下相关经验
/ K  K  C4 Z" @* z
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-24 01:24 , Processed in 0.140625 second(s), 33 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表