下面这段程序用串口调试助手为什么整个屏幕一直显示Come On! 我并没有用while循环啊 应该只收到一个Come On!先谢谢啦!
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[]={"Come On!\r\n"};
void delay(uint x) //延时X毫秒
{
uint y,z;
for(z=x;z>0;z--)
for(y=110;y>0;y--);
}
void UART_Init(void)
{
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
SCON=0x40;
PCON=0x00;
TR1=1;
}
//串口发送一个字节
void Uart_SendChar(unsigned char dat)
{
SBUF = dat; //待发送的数据写入缓冲区
while(!TI); //等待发送完成
TI = 0; //清零发送标志位
}
/*-------------------------------------------------------------*/
//串口发送一个字符串
void Uart_SendString(unsigned char *dat)
{
while(*dat!='\0')
{
Uart_SendChar(*dat); //发送当前数据
dat++; //指向下一个要发送的数据
}
}
void main()
{
UART_Init();
delay(10);
Uart_SendString(table);
} |