完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
一个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个回答
|
|
|
|
|
|
while(KeyValue==0)里的KeyValue已经等于0了,所以就是0了啊……因为是while卡死在这句所以你的
KeyDown(); //,按键扫描,读取键值赋值给KeyValue就执行不到了。KeyValue就刷新不了…… |
|
|
|
HARRY007 发表于 2016-12-22 18:52 我也试过吧while去掉 还是一样~~~~ |
|
|
|
你少了一个}符号呀
|
|
|
|
|
|
|
|
|
|
|
|
还是不行~~~{:4:} |
|
|
|
本帖最后由 wulinwl 于 2016-12-22 21:46 编辑
看来你要在按键扫描程序里找问题。因为while(KeyValue==0)括号里一直为真就不能跳出,下面的语句也改变不了其值,就死在这里。不太明白你这样编程的用意。 |
|
|
|
我试过用一个扫描按键的来重新写一个主函数。。。 就是按下 P0^0 从0变到1 两秒后变成0 是可以的 而且试过了 每个按键都是可以的 |
|
|
|
你没听明白我的意思啊……死在while(KeyValue==0)这句话,你的KeyValue如何变成真????,while(KeyValue==0)之前调用了一次KeyDown(); 刷新了一次KeyValue的值,之后就再也没有刷新了 |
|
|
|
王栋春 发表于 2016-12-22 22:15 灯亮了 可能是卡在那个VLCWrite 那个子函数里面 ~~~~ 忧伤 |
|
|
|
搞软件一定细心再细心 同样跟着楼主学习一下相关经验 |
|
|
|
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) { KeyDown(); } VLCWrite("1",5,1);//发送字符1,发送5个字符,采用信道1 } } |
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
464 浏览 0 评论
478 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
439 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
994 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
1056 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11792 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 19:47 , Processed in 1.194586 second(s), Total 97, Slave 81 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号