问题描述
|
我正在尝试使用PIC 16上的USART功能接收1个字符。
发送器和接收器均为PIC 16。
我可以检查调用接收函数的方式在概念上是否正确
char tmp;
CREN = 0;
CREN = 1;
while(!RCIF);
if(OERR==1)
{
tmp = RCREG;
tmp = RCREG;
CREN=0;
DelayMs(5);
CREN=1;
}
else
{
tmp = RCREG;
}
CREN = 0;
提前谢谢了!
解决方法
您必须首先启动UART。
正确载入SPBRG寄存器
数量取决于您的波特率
速率和CPU时钟频率
(请检查数据表)。
将TXSTA寄存器中的BRGH位置1取决于所需的波特率发生器(请参见数据表)。
RCSTA寄存器中的置1位取决于数据长度等(请参见数据表)。使能RCSTA寄存器中的CREN位。
等待PIR1.RCIF == 1位,表明缓冲区接收器已满(仅一个字节)。