📄 serial.h
字号:
/*******************************************************/
/* com_receive函数 作用:接收串口数据 */
/* 将数据存入rbuf缓冲,并进行处理 */
/*******************************************************/
void com_receive(void) interrupt 4 using 2
{ uchar data c;
if(RI)
{c=SBUF;
switch(c)
{ case '#':com_deal();break;
case '@':rbuf_index=0;break;
default:rbuf[rbuf_index]=c;if(rbuf_index<31) rbuf_index++;break;
}
}
RI=0;
}
/*******************************************************/
/* hextonum函数 作用:十六进制处理成uchar */
/*******************************************************/
uchar hextonum(uchar a)
{if (a<='9')return(a-'0');
else return (a-'A'+10);
}
/*******************************************************/
/* com_deal函数 作用:串口数据处理 */
/*******************************************************/
void com_deal(void)
{
uchar data c;
c=rbuf[0];
switch(c)
{
case 'X':ic_read_pram();break;
case 'y':ic_read_mram();break;
default:break;
}
}
/*******************************************************/
/* com_init函数 作用:初始化串口 */
/*******************************************************/
void com_init(void){
EA=0;
TL1=0xfd;
PCON=0x00;
TH1 = 0xFD;//11.0592 MHz 9600 波特率
TMOD = 0x21; //定时器1 定时方式2
SCON = 0x50;//串口工作于模式1
PS=1; //串行口中断优先级
ES=1; //串行口中断控制位
ET1=0;
EA=1;
TR1=1;
}
/*******************************************************/
/* com_send函数 作用:串口发送字符串 */
/*******************************************************/
void com_send(uchar *s)
{ while(*s!='\0')
{ SBUF=*s;
while(TI==0);
TI=0;
s++;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -