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

#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灯上,但我用串口调试助手发送时,每次只能发一次,要想发第二次必须关掉串口,再打开串口才行,请问这是什么情况?程序哪里有问题?

第1个回答  2012-10-24
程序没问题啊。断电打开文件,再次通电才可以下进去。
第2个回答  2012-10-24
我试过了,没有问题啊!换一个串口调试助手试一试!本回答被提问者采纳
第3个回答  2012-10-25
应该是你的串口调试助手有问题
第4个回答  2012-11-04
程序没问题,从电脑的串口硬件和助手找问题
相似回答