打印

if((receivedata[k-2]==CRC16_Lo)&&(receivedata[k-1]==CRC16_Hi))出问题!

[复制链接]
1056|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
space005|  楼主 | 2014-9-2 10:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 space005 于 2014-9-2 10:56 编辑

我是用keil调试的(选用的是AT89C52单片机),可是这个语句根本就形同虚设,不管括号里的式子相不相等,都执行if后的语句,但要是把上述语句改为
if(receivedata[k-2]==CRC16_Lo)
标志寄存器_1=1;
else
标志寄存器_1=0;
if(receivedata[k-1]==CRC16_Hi)
标志寄存器_2=1;
else
标志寄存器_2=0;
if(标志寄存器_1&&标志寄存器_2)  
就不存在这个问题?

相关帖子

沙发
ayb_ice| | 2014-9-2 10:51 | 只看该作者
何以证明呢

使用特权

评论回复
板凳
space005|  楼主 | 2014-9-2 10:58 | 只看该作者
KEIL中在这条程序语句的前面设了断点,然后一步一步运行观察到的。不知为什么,if((receivedata[k-2]==CRC16_Lo)&&(receivedata[k-1]==CRC16_Hi))这个语句连断点都不给设置。

使用特权

评论回复
地板
ayb_ice| | 2014-9-2 11:17 | 只看该作者
space005 发表于 2014-9-2 10:58
KEIL中在这条程序语句的前面设了断点,然后一步一步运行观察到的。不知为什么,if((receivedata[k-2]==CRC1 ...

不能设置断点说明有错误吗

使用特权

评论回复
5
space005|  楼主 | 2014-9-2 11:43 | 只看该作者
是这样的,观察内存变量,无论((receivedata[k-2]==CRC16_Lo)&&(receivedata[k-1]==CRC16_Hi))成立与否,都执行if后面的语句,怀疑语法有问题,但又没看出错误,不知道问题在哪?

使用特权

评论回复
6
菜鸟同学| | 2014-9-2 21:37 | 只看该作者
反汇编!看代码!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

16

帖子

0

粉丝