微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 为什么debug不执行if内语句?

为什么debug不执行if内语句?

时间:10-02 整理:3721RD 点击:

各位大神,一个很简单的的一个程序但是不知道为什么debug不执行if内语句,求解。谢谢!
#include<reg52.h>
void main()
{
char shu,n;
while(1)
        {
        P2=0xf7;
        shu=P2;
        if(shu==0xf7)     //为什么不执行if内语句?难道shu==0xf7为假?求解
                {
                n++;
                }
        }
}

#7楼正解,十分感谢,谢谢。

shu读取的是P2口的状态,你确定P2口的状态是0xf7,你再设一个数试试,不要用P2

debug状态下看一下shu这个值的值,两个值不一定会相等的。

debug时P2口数据和0xf7是一样的啊

debug时P2口数据、shu和0xf7是一样的啊

这样,
char ppp222,shu,n;
ppp222=0xf7;
shu=0xf7
if(shu==0xf7)
{
n++;
}

变量设置错误,
char shu;
改为无符号数即可。
unsigned char shu;

十分感谢你的指导!谢谢!

你没理解我的程序的目的。谢谢!
#7楼正解!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top