永发信息网

请帮忙看一下单片机程序,串口调试工具是不停的收到数据,为什么不是按一次按键发送一次?应该怎么修改

答案:4  悬赏:80  手机版
解决时间 2021-12-20 18:43

int main(void)
{
TMOD=0x20; //定时器T1 工作于方式2
SCON=0x50; //SCON=0101 0000B,串口工作方式1,允许接收(REN=1)
PCON=0x00; //PCON=0000 0000B,波特率9600
TH1=0xfd; //根据规定给定时器T1 赋初值
TL1=0xfd; //根据规定给定时器T1 赋初值
TR1=1; //启动定时器T1
ES=1;
EA=1;
SBUF=0x00;
while(1) //无限循环
{
key44();
}
return 0;
}


void ser_int (void) interrupt 4 using 3
{
if(RI==1) //RI接收标志位
{
RI = 0; //清除RI接受标志位
keyval= SBUF; //SUBF接收缓冲

}
if(TI==1)
{
TI=0;
SBUF=keyval;

}
}
最佳答案
修改:

void ser_int (void) interrupt 4 using 3
{
if(RI) { //RI接收标志位
RI = 0; //清除RI接受标志位
keyval = SBUF; //SUBF接收缓冲
SBUF = keyval;
}
if(TI) TI = 0;
}

即可。
全部回答
你好! 你的 key44 函数的内容呢
while(1) //无限循环 { key44(); while(1);//停止 }
串口调试助手一般有两种数据模式,一种是字符,一种是十六进制数 0x31 是1的ascii 码,你把串口调试助手的发送数据类型改成十六进制就可以了。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
一个单元算一栋楼还是连起来几个单元算一栋楼
股市成交量怎么算
下面是鲁迅《阿Q正传》中的一段文字的原稿及
初中毕业去读技校3年出来后是不是就是中专?
钱放支付宝有利息吗?
单选题说太平天国运动的斗争水平高于此前的历
奕萱是什么意思
丽江丝柏纳精油
怎样识别翡翠玉的真假?
3o%醋酸溶液多少钱一瓶
物质的性质决定物质的用途.下列物质的用途,
屈组什么词
9岁的男孩子开始叛逆期了吗?
崧泽华城源昌幸福里北区西门(人行门)在哪里啊
单选题大量的细菌可以使食品迅速腐烂,食品在
推荐资讯
杭州警苑综合服务部第二车辆检测站地址在哪?
普雄派出所地址在什么地方?想过去办事
晓街乡派出所地址在哪?我要去那里办事
学生做什么能快速赚钱
集安市文物局位置在什么地方啊,我要过去办理
生词英语怎么说
高手看了就帮下吧excel用vlookup函数如何在第
南京大学与南京艺术大学离得远吗?
玉的五行属性
先估一估再笔算是什么意思到底是估算还是笔算
周村到济南多长时间,周村到济南有多远,多少
—Jim,you said you'd lend me your MP5.—I
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?