|
stc8a8k64a4s12 接收丟字 求助
main
#include "h.h"
extern char rrec[50];
extern count;
unsigned char Data_compare(unsigned char *p)
{
if(strstr(rrec,p)!=NULL)
return 1;
else
return 0;
}
void main(){
init();
uartinit();
lcddisplay(2,0,"hello uart test ");
lcddisplay(1,0,"STC 8A8K64S4A12 ");
while(1){
if(Data_compare("AT")==1){Uart1SendStr("ok\n",strlen("ok\n")); lcd1602clean(' ');}
else
memset(rrec, 0, 50);count=0;
lcddisplay(1,0,rrec);
delay_us(2);
if(P53==0)
{lcd1602clean(' ');Uart1SendStr("cl\n",strlen("cl\n"));}
}
}
uart
#include "uart.h"
char rrec[lenth];
int count=0;
void uartinit()//1000000bps
{
SCON = 0x50; //8???,?????
AUXR |= 0x40; //???1???Fosc,?1T
AUXR &= 0xFE; //??1?????1???????
TMOD &= 0x0F; //?????1?16???????
TL1 = 0xFA; //??????
TH1 = 0xFF; //??????
ET1 = 0; //?????1??
TR1 = 1; //?????1
ES = 1;
EA = 1;
}
void uart()interrupt 4
{ uartrec();}
void uartrec(){
unsigned char rec;
if(RI){RI=0;
rec=SBUF;
rrec[count] = SBUF;
count++;
if(count>lenth) count = 0;
}
}
void uartsend(unsigned char dat)
{
if(TI){TI=0;}
SBUF=dat;
while(!TI);
TI=0;
}
void Uart1SendStr(unsigned char *str ,unsigned char len)
{
while(len--)
{
uartsend(*str);
str++;
}
}
|
|