【发布时间】:2013-12-19 18:48:18
【问题描述】:
我不明白我在这里做错了什么。
我以 9600 波特率打开 UART,如下所示,我正在使用带有 PIC18F87J11 的 MPLAB XC8 编译器。
#include <usart.h>
#define FOSC (8000000UL)
#define FCYC (FOSC/4UL)
#define BAUD 9600UL
#define SPBRG_INIT (FOSC/(16UL*BAUD) - 1)
Open1USART(USART_TX_INT_OFF & USART_RX_INT_OFF & USART_ASYNCH_MODE & USART_EIGHT_BIT & USART_CONT_RX & USART_BRGH_HIGH, SPBRG_INIT);
这就是我在终端上输入的内容的回显方式
while ( 1)
{
while(PIR1bits.RCIF == 0 );
{
message = Read1USART();
Write1USART(message);
while (!TXSTA1bits.TRMT);
}
}
但是以下方法不起作用。如果消息等于 12,我想将 12 打印到终端,但它永远不会正确。它一次只读取一个字符。
while ( 1)
{
while(PIR1bits.RCIF == 0 );
{
message = Read1USART();
if (message == 12)
{
Write1USART(message);
while (!TXSTA1bits.TRMT);
}
}
}
如何修复它以使其接受多个字符(如 12 个)?然后输出到终端?谢谢!
【问题讨论】:
标签: embedded microcontroller pic uart