独闷闷网

 找回密码
 立即注册
搜索
查看: 3800|回复: 3
打印 上一主题 下一主题
收起左侧

[求助] 鸿哥,理解不了了,帮忙解释一下吧

[复制链接]
楼主
发表于 2014-11-15 23:32:23 | 显示全部楼层
本帖最后由 jianhong_wu 于 2014-11-15 23:33 编辑

(1)为什么用else,你说的是哪节的内容?
(2)这个不是除以2,是对2求余数。对2求余数,只有两种结果,一种是0,一种是1。也就是求奇偶数。而液晶屏一个地址必须显示1一个汉字,或者2个字符。如果一个地址只显示1个字符,那么另外1字符必须填充空格0x20字符。对2求余数就是目的判断它到底是一个地址刚好有2个字符,还是只有1个字符。剩下的要靠你自己感悟,理科的东西不能完全用语言描述清楚,需要靠个人用心感悟它。
乐于分享,勇于质疑!
沙发
发表于 2014-11-16 12:45:30 | 显示全部楼层
waphaoyun 发表于 2014-11-16 11:25
谢谢鸿哥,第八十二讲的,昨天忘记上图了,还是没明白else呢

应该是第81节的内容。
  1. if(ucRcregBuf[uiRcMoveIndex+3+i]==0x0d&&ucRcregBuf[uiRcMoveIndex+4+i]==0x0a)  //结束标志0x0d 0x0a的判断
  2.                       {
  3.                            uiVoiceCnt=const_voice_short; //蜂鸣器发出声音,表示数据接收正确完毕
  4.                                                    ucWd1Part1Update=1; //及时更新显示第2,3,4行内容的信息
  5.                                                    break; //退出for循环
  6.                       }        
  7.                                        else  //收集有效信息编码进入显示缓冲区
复制代码
在for循环里,数组下标随着i的变化而不断的从第1个字节往最后一个字节方向移动,移动的目的是搜索“0x0d 0x0a”这个结束标志,如果发现不是这个标志,那么执行else的代码,表示else部分收集到的数据是有效的信息数据。如果一旦搜索到0x0d 0x0a这个关键字代码,那么就表示这一条信息结束,通过 break; 退出for循环。
乐于分享,勇于质疑!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|独闷闷网 ( 粤ICP备12007667号-2 )

GMT+8, 2024-5-3 09:10 , Processed in 0.167966 second(s), 17 queries .

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