用单片机串口向电脑串口调试助手发送一个字符串,用C语言编程

Python014

用单片机串口向电脑串口调试助手发送一个字符串,用C语言编程,第1张

uchar idata SystemBuf[10] //用于接收

uchar Rx=0 //接收数据条数

uchar code AT[]="YES,IT IS"

void UART_init (void)

{

TMOD=0x20 //用定时器1

PCON=0x00 //波特率不加倍

SCON=0x50 //串行方式1

TH1=0xFD //9600

TL1=0xFD //

EA=1 //

ES=1 //

TR1=1

}

void sendchar(uchar ch) //串口送一个字节

{

SBUF=ch

while(TI==0)

TI=0

}

void sendstring(uchar *p) //送字符串

{

while(*p)

{

sendchar(*p)

p++

}

}

///////

void receive(void) interrupt 4 using 1 //中断

{

if(RI)

{

if(Rx<10) //这儿最多收10个字节

{

SystemBuf[Rx]=SBUF

Rx++

}

RI=0

}

}

///

void main()

{

uchar i

UART_init()

while(1)

{

if(SystemBuf=='S')

{

sendstring(AT)

for(i=0i<10i++) //接收清0

{

SystemBuf[i]=0

}

Rx=0

}

}

}

//////////如有小错误,自己调下,手打的,大小写可能不正常,这是标准程序,直接用,

用循环缓存的方法。

uchar buf[10]

uchar sIn = 0, sOut = 0

uchar sendFlag = 0

void main(){

...

while(1){

if(sIn != sOut){

if(sendFlag == 0){

SBUF = buf[sOut]

sOut = (sOut + 1) % 10

sendFlag = 1

}

}

}

}

void ser() interrupt 4

{

if(RI){

RI = 0

buf[sIn] = SBUF

sIn = (sIn + 1) % 10

}

if(TI){//一个字节发送完备

TI = 0

sendFlag = 0

}

}