本意是想串口发送一次字符串,但是却一直重复发送了。
程序代码如下:
#include<stc12c5a60s2.h>
#include<stdio.h>
#define uchar unsigned char
#define uint unsigned int
void delay_ms(uint x)
{ uint j;
for(;x>0;x--)
for(j=125;j>0;j--);
}
void uart_init() //串口初始化
{
SCON=0x50; //串口方式1
TMOD=0x20; //T1采用定时方式2
TH1=TL1=0xfd;//9600b/s
PCON=0; //波特率不加倍
TR1=1;
}
void uart1_send_byte(uchar byte)
{
SBUF = byte;
while(!TI); //等待发送完成
TI=0; //清TI标志位
}
//串口1 发送 字符串
void uart1_send_string(uchar *str)
{
while(*str!='\0')
{
uart1_send_byte(*str++);
}
}
void main()
{
uart_init();
delay_ms(100);
uart1_send_string("yes,you can!\r\n");
delay_ms(500);
}
|