📄 sport.txt
字号:
这是我自己写的串口程序,调试过了,可以根据数据包的要求接收和抛弃,
#include "reg51.h"
#include "stdio.h"
#defineXTAL11059200//晶振频率
#defineBaud9600//串口波特率
#defineR_leng7//串口接收缓冲区
#defineT_leng 12//串口发送缓冲区
#define headchar 0xf0
#define tailchar 0xcc
//unsigned char headchar=0xf0;
//unsigned char tailchar=0xcc;
unsigned char addr=0x10;
char idata luca_Txdbuf[T_leng]={0xf0,0x10,0x5,0xa4,0x12,0x13,0x01,0x02,0x03,0x04,0x05,0xcc};
unsigned char idata luca_Rxdbuf[R_leng];
unsigned charc;
unsigned char i=0,n=0;
unsigned int Tmpcrc;
void delay (void)
{
unsigned int i;
for (i=10000;i>0;i--);
}
static void Com_isr(void) interrupt 4 using 1
{if(RI)
{
RI=0;
c=SBUF;
switch(i)
{case 0:
i++;
if(c!=headchar)
{i=0;
return;
}
luca_Rxdbuf[0]=c;
break;
case 1:
i++;
if(c!=addr)
{i=0;
return;
}
luca_Rxdbuf[1]=c;
break;
case 6:
i=0;
if(c!=tailchar)
{i=0;
return;
}
luca_Rxdbuf[6]=c;
break;
default:
luca_Rxdbuf[i]=c;
i++;
break;
}
}
if(TI)
{
TI=0;
/*for(n=0;n<12;n++)
{
SBUF=luca_Txdbuf[n];
delay();
}*/
for(n=0;n<7;n++)
{
SBUF=luca_Rxdbuf[n];
delay();
}
}
}
新手,写的不怎么样??总算能接收和发送!!
void Com_init(void)
{
PCON |=0x80;
TMOD |=0x20;
TH1= (unsigned char)(256-(XTAL/(16L*12L*Baud)));
TR1=1;
SCON=0x50;
ES=1;
}
void main(void)
{EA=1;
Com_init();
while(1)
{
while(luca_Rxdbuf[6]==0xcc)
{ SBUF=0;
delay();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -