电脑与PIC单片机的UART1B收发口通信,电脑串口调试工具发送0x01发回来一个0xc0,
下面是接收中断的程序:
void __ISR(_UART_1B_VECTOR, IPL6SOFT) IntUart1BHandler(void) //
{
if (INTGetFlag(INT_SOURCE_UART_RX(UART1B)))
{
if (UARTReceivedDataIsAvailable(UART1B))
{
RecBuff1b[rec1b_cnt] = U1BRXREG;;
U1BTXREG = RecBuff1b[rec1b_cnt ++];
INTClearFlag(INT_SOURCE_UART_RX(UART1B));
}
}
if (INTGetFlag(INT_SOURCE_UART_TX(UART1B)))
{
INTClearFlag(INT_SOURCE_UART_TX(UART1B));
}
}
运行之后发个01,得了个c0,而且RecBuff1b[0]=0xc0,是不是说明是接收寄存器U1BRXREG接收到的数据有问题,之后的部分是没问题的。
随后我发01 02 03 04 01 02 03 04,得到的是c0 e0 e0 f0 c0 e0 e0 f0。
所以我想知道为什么接收数据不正确呢?