完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
请教51的以下代码,折腾好几天了: 问题点: 第一个while被我写死了,应该是一直死循环,但实际上是第一个while只执行了一次,然后跳到了后面while(1)程序中,为什么呢? ps:while(accept...)中的调用函数没有任何跳转出函数的指令, str是一个全局数组。
void main() { float t; int j; unsigned char accept[5]; accept[0]=1; TMOD=0x21; TH1=0xFD; TL1=0xFD; TH0=(65536-46080)/256; TL0=(65536-46080)%256; EA=1; SM0=0; SM1=1; REN=1; ET0=1; TR0=1; TR1=1; ES=0; while (accept[0]==1) { floatTostring(str,t); serialSendstring(str); } while (1) { t=DS18B20_getTem(); detect(t); floatTostring(str,t);
while (fl) { serialSendstring(str); fl=0; }
}
该类别下有 43 个回答。
该类别下有 35 个回答。
该类别下有 27 个回答。
该类别下有 24 个回答。
该类别下有 24 个回答,其中被选为最佳答案 1 次。
该类别下有 23 个回答。
该类别下有 21 个回答。
该类别下有 20 个回答。
该类别下有 19 个回答。
该类别下有 18 个回答。
该类别下有 17 个回答。
该类别下有 16 个回答。
举报
阿信509
试过几种可能, 1. 第一个while中,将字符数组的首位先复制到一个中间变量i,再判断i>0;就可以一直执行第一个while循环 2.第一个while直接写while(1)也是只执行第一个循环 3.用字符数组的首位是否=1;就会出现,第一个while只执行一次,然后一直执行第二个while。 可能是字符数组带来的问题
照旗
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
发布答案
电子发烧友网
电子发烧友论坛
查看 »
小黑屋| 手机版| Archiver| 电子发烧友 ( 粤ICP备14022951号 )
GMT+8, 2023-2-6 14:21 , Processed in 1.284245 second(s), Total 99, Slave 92 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com