利用串口对发送的字符串进行处理后返回一个新的字符串对串口发送一个字符串,将其倒序并在其中插入@符号后返回
例如发送“ohmygod”,返回“d@o@g@y@m@h@o”
虽然笔者也不知道介个有啥用,但也是为了初学串口后加深理解的小例程吧。
/*输入的字符串要与定义的数组长度相同,也就是说此代码是针对字符串长度为9的,
可根据自己所需进行调整*/
#include <reg52.h>
typedef unsigned int u16;
typedef unsigned char u8;
u8 receiveData[9];
u16 i = 0;
u16 j;
void UsartInit(){
SCON=0X50; //设置为工作方式1
TMOD=0X20; //设置计数器工作方式2
PCON=0X80; //波特率加倍
TH1=0XF3; //计数器初始值设置,注意波特率是4800的
TL1=0XF3;
ES=1; //打开接收中断
EA=1; //打开总中断
TR1=1; //打开计数器
}
void main(void)
{
UsartInit();
while(1);
}
void Usart() interrupt 4
{
receiveData[i] = SBUF;
RI = 0;
i++;
if(i==9){
i = 0;
for(j=8;j>0;j--)
{
SBUF = receiveData[j];
while(!TI);
TI = 0;
SBUF = '@';
while(!TI);
TI = 0;
}
SBUF = receiveData[0];
while(!TI);
TI = 0;
}
}