0

我正在尝试使用 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;

提前谢谢了!

4

1 回答 1

1

您必须首先启动 UART。

  1. 加载到 SPBRG 寄存器中的正确数字取决于您的波特率和 CPU 时钟频率(查看数据表)。
  2. 设置寄存器 TXSTA 中的 BRGH 位取决于所需的波特率发生器(查看数据表)。
  3. RCSTA 寄存器中的设置位取决于数据长度等(检查数据表)。使能 RCSTA 寄存器中的 CREN 位。
  4. 等待 PIR1.RCIF == 1 位,表示缓冲区接收器已满(只有一个字节)。
于 2011-06-01T09:49:04.597 回答