历史上的今天
今天是:2024年09月03日(星期二)
2020年09月03日 | USART接收数据,以回车结束
2020-09-03 来源:eefocus
单片机: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是数据帧的最后一个数据。
史海拾趣
|
/*mini2440_buttons_my.c*/ /*后面加了_my*/ /*按键驱动程序*/ /*mini2440所用到的按键资源*/ /**************************************************/ /* 按键 对应的IO寄存器   ...… 查看全部问答> |




