大家好我想利用单片机串口通信接收一字节数据,但是老不正确!例如我发射端程序发射0Xee,但是接收端接收端的不是。望各位高手指教:谢谢
这是我发射端的程序: #include<reg52.h> #define unchar unsigned char #define uint unsigned int #define TR 1 //==============================发送数据存入数组数组1,2,3,4为固定========================================= unchar Txdat[5]={0xA1,0xF1,0xee,0xee,0xEE}; //==============================串口初始化程序========================================= void init(void) { TMOD=0x20; TH1=0xFD; TL1=0xFD; PCON=0x00;TR1=1;SCON=0x50; } //==============================串口发送程序========================================= void send( ) { unchar i; for(i=0;i<5;i++) { SBUF=TXdata; while(TI==0); TI=0; } } void main(void) { unchar tf=0; init(); TR==0; while(1) { send(); }} 下边是我接收端程序: #include <reg52.h> #include <intrins.h> #define uchar unsigned char #define uint unsiged int uchar buf,key,i,j,k=0; void main(void) { SCON=0x50; //设定串口工作方式 PCON=0x00; //波特率不加倍 TMOD=0x20; EA=1; ES=1; TH1=0xFD; TL1=0xFD; TR1=1; DigInit(); while(1) } void serial() interrupt 4 { ES=0; RI=0; Rxdata[k]=SBUF; k++; ES=1; switch(Rxdata[2]) { case 0xee: key=17;break; case 0xde: key=25;break; case 0xaa: key=30;break; case 0x7e: key=45;break; default:break; }
|