uchar a1,b1。dflag是总数不能大于四,当a1为0后,用dflag-(b1%0x10);当a1不为0,则判断b1+dflag是否大于4,如果大于四,则不动作,小于四则dflag=dflag+(b%0x10)并将a1左移4位。(因为a1为2个单数的组合)
if(a1/0x10==bflag)
{
if(((a1<<4)/0x10)==0)
{
dflag=dflag-(b1%0x10);
b1=0;
a1=0;
}
else
{
if((dflag+(b1%0x10))<=0x04)
{
a1=a1<<4;
dflag=dflag+(b1%0x10);
yiweiflag=1;
}
}
}
a1的范围是1至5整数,由其他单片机发送
b1的范围是0至4整数,由其他单片机发送
经不断复查。最后发现if((dflag+(b1%0x10))<=0x04)
有问题,把0x04改到大于0x10就能运行了。
但是问题在于我在keil里0x04是完美运行的啊。。。好奇怪啊(我保证其他单片机发送的数据也正确,求证过了)
不是啊。if((dflag+(b1%0x10))<=0x04)
这句我在keil里运行很好啊,但是单片机就不行,烧进去就错误
你说的错误是指结果 不对呢?还是压根不能运行啊?
跟编译器没关系吧。。
追答我做的程序在uv3编译的就不能正常工作,改为uv4后就没问题了。
dsdfsa妹啊
追答型号选错了吧