为什么用if语句不行,用while却可以

[复制链接]
3145|55
i1mcu 发表于 2017-12-19 22:19 | 显示全部楼层
当发送结束T1=1;这表明结束
51xlf 发表于 2017-12-19 22:19 | 显示全部楼层
if的话,可能循环过去 。
chenci2013 发表于 2017-12-19 22:19 | 显示全部楼层
没有发送完成就得执行下一次了。
pmp 发表于 2017-12-19 22:19 | 显示全部楼层
if实现不了等待的功能。
mmbs 发表于 2017-12-19 22:19 | 显示全部楼层
其他的例程都是这么写的。
isseed 发表于 2017-12-19 22:19 | 显示全部楼层
正常的单片机控制系统就是这么写的。
lzbf 发表于 2017-12-19 22:19 | 显示全部楼层
jiajs 发表于 2017-12-17 16:49
为什么用if语句不行,用while却可以

,发送完成TI值为1while(!TI) 的意思就是等待串口发送完成
houjiakai 发表于 2017-12-19 22:19 | 显示全部楼层
TI为1,(!TI)值为0,退出循环,向下执行
mituzu 发表于 2017-12-19 22:19 | 显示全部楼层
一般TI可以为完成标志
youtome 发表于 2017-12-19 22:19 | 显示全部楼层
使用延时函数也可以。
i1mcu 发表于 2017-12-19 22:19 | 显示全部楼层
发送结束后把TI设置为0,表明下次继续发
dengdc 发表于 2017-12-23 18:42 | 显示全部楼层

两个语句的是不一样的,一个是选择判断的,一个是循环判断的。。
lizye 发表于 2017-12-23 18:49 | 显示全部楼层
这两种语句的用法是有区别的。
jiaxw 发表于 2017-12-23 18:53 | 显示全部楼层
if为选择语句的,while为循环判断语句的,用途也不一样的。
spark周 发表于 2017-12-23 18:59 | 显示全部楼层
while语句的涉及到循环处理等待的问题,if只是一个选择性的问题的,在时间上没有等待的。
liliang9554 发表于 2017-12-23 19:08 | 显示全部楼层
楼上说的是,若要用if语句的就需要在其前面的加一个延时程序的。
shimx 发表于 2017-12-23 19:12 | 显示全部楼层
不过这个还是需要估计好硬件上的响应处理时间的,太短时间也是不行的。这个跟while相比,在实时性上大打折扣的。
dengdc 发表于 2017-12-23 19:16 | 显示全部楼层

逻辑不对吧。
 楼主| jiajs 发表于 2017-12-23 19:21 | 显示全部楼层
其实还是不大明白,我再琢磨琢磨吧,多谢了哈,结贴了先
 楼主| jiajs 发表于 2017-12-23 19:25 | 显示全部楼层
为什么用if语句不行,用while却可以
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部