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
(只是接收的程序)
展开
 我来答
hpj4525
2012-05-19 · TA获得超过331个赞
知道小有建树答主
回答量:479
采纳率:100%
帮助的人:336万
展开全部
RI=0;
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 广告
STM32F103是一款高性能的嵌入式芯片,由意法半导体(STMicroelectronics)公司生产。它是STM32系列芯片之一,具有紧凑、低功耗、高性能等特点,被广泛应用于嵌入式系统中。STM32F103的主要特点包括:1. 集成了A... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
960310983
2012-05-19 · TA获得超过352个赞
知道小有建树答主
回答量:867
采纳率:0%
帮助的人:210万
展开全部
为什么不先读取 再发送呢
追问
什么意思?不太懂你的意思
这是接收的程序
能说明白点吗
追答
为了保险起见,前面加一个判断 if(RI)再执行后面的程序,TI置1的时候也会出发串行口中断的,所以先排除TI置1的情况
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式