52单片机的串口中断的问题 求解
voidser()interrupt4{RI=0;//P1=SBUF;a=SBUF;if(a==0xff){//P1=a;wr=0;P0=0X00;//lcd_write...
void ser() interrupt 4
{
RI=0;
// P1=SBUF;
a=SBUF;
if(a==0xff)
{
// P1=a;
wr=0;
P0=0X00;
// lcd_write_line_1(table);//关闭设备一
// lcd_write_line_2(table4);
}
// flag=1;
}
运行的时候 ,SBUF的值给不了a,单步调试的时候,给SBUF一个值0Xff,但是就是SBUF的值始终给不了a,为什么?
a定义成unsigned char
(只是接收的程序) 展开
{
RI=0;
// P1=SBUF;
a=SBUF;
if(a==0xff)
{
// P1=a;
wr=0;
P0=0X00;
// lcd_write_line_1(table);//关闭设备一
// lcd_write_line_2(table4);
}
// flag=1;
}
运行的时候 ,SBUF的值给不了a,单步调试的时候,给SBUF一个值0Xff,但是就是SBUF的值始终给不了a,为什么?
a定义成unsigned char
(只是接收的程序) 展开
2个回答
展开全部
RI=0;
a=SBUF;
位置对换
或者a==0xff换成SBUF 试试行不行
有时候语句的位置也是很讲究的
a=SBUF;
位置对换
或者a==0xff换成SBUF 试试行不行
有时候语句的位置也是很讲究的
更多追问追答
追问
// P1=SBUF;
a=SBUF;
RI=0;
if(SBUF==0xff)
{
// P1=a;
wr=0;
P0=0X00;
lcd_write_line_1(table);//关闭设备一
lcd_write_line_2(table4);
}
// flag=1;
}
改成这样后 的运行结果是:不经过if(SBUF==0xff)的判断,直接执行if里面的语句,if就没有用了
换成if(a==0xff) 同样的结果
为什么判断没有用了》》??
追答
你先把判断搞明白 这个判断是能用 还是不能用
想搞明白很简单的 换几个值给a 看看运行的结果 就知道了
或许是其他地方的问题哦
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
意法半导体(中国)投资有限公司
2023-06-12 广告
2023-06-12 广告
STM32F103是一款高性能的嵌入式芯片,由意法半导体(STMicroelectronics)公司生产。它是STM32系列芯片之一,具有紧凑、低功耗、高性能等特点,被广泛应用于嵌入式系统中。STM32F103的主要特点包括:1. 集成了A...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询