51单片机串口通信程序用串口调试时,每次打开卡串口只能发一次数据,要想发第二次必须关闭串口再打开才行

#include<reg52.h>#defineucharunsignedchar#defineuintunsignedintvoidinit(){TMOD=0x20;/... #include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
void init()
{
TMOD=0x20; //设置定时器1为工作方式2,8位重装
TH1=0xfd;//
TL1=0xfd;//在波特率为9600下
EA=1; //开总中断
TR1=1;//打开定时器中断
SCON=0x50;//设置为串口工作方式1,10位数据
ES=1;//串口中断打开
}
void main()
{
init();
while(1);
}
void receive() interrupt 4
{
RI=0;//复位串口中断
P0=~SBUF;//接收数据显示在P0口
}
以上是通过串口发一个数据给单片机,然后显示在P0口LED灯上,但我用串口调试助手发送时,每次只能发一次,要想发第二次必须关掉串口,再打开串口才行,请问这是什么情况?程序哪里有问题?
展开
 我来答
caiyunlong88
2012-10-24
知道答主
回答量:5
采纳率:0%
帮助的人:7705
展开全部
程序没问题啊。断电打开文件,再次通电才可以下进去。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
nwnu_137
2012-10-24 · TA获得超过271个赞
知道小有建树答主
回答量:213
采纳率:0%
帮助的人:98万
展开全部
我试过了,没有问题啊!换一个串口调试助手试一试!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
归听云bh
2012-10-25 · 超过24用户采纳过TA的回答
知道答主
回答量:81
采纳率:0%
帮助的人:56.2万
展开全部
应该是你的串口调试助手有问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lgod9
2012-11-04
知道答主
回答量:36
采纳率:0%
帮助的人:12.9万
展开全部
程序没问题,从电脑的串口硬件和助手找问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式