单片机:PIC18F45K80
实现功能:接收发来的以回车换行(0x0D,0X0A)结尾的串口数据。
#define RX_SIZE 100 //接收缓存区大小
#define FINISH 1
bit RX_flag; //接收完成标志
unsigned char RX[RX_SIZE]; //接收缓存
unsigned char RX_C=0; //接收计数
void USART_RX() //在中断中加入此函数
{
unsigned char data;
if(RC1IE&&RC1IF) //判断是否是usart1中断,且RC1IF=1
{
data=RCREG1; //接收1字节数据
RX[RX_C++]= data;
if(data== 0x0A && RX[RX_C-2] == 0x0D ) //判断接收是否结束
{
RX_C=0;
RX_flag=FINISH; //置位接收完成标志
}
}
}
注意:先判断data是否等于0x0a,再去判断RX[RX_C-2]等于0x0d。
因为0x0a是数据帧的最后一个数据。
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』