官方库:HC32L130_SDK\驱动库及样例\hc32l13x_ddl_Rev1.8.0 Lite\hc32l13x_ddl\example\lpuart\lpuart_int
///<LPUART1 中断服务函数
void LpUart1_IRQHandler(void)
{
if(LPUart_GetStatus(M0P_LPUART1, LPUartTC))
{
LPUart_ClrStatus(M0P_LPUART1, LPUartTC); ///<清发送中断请求
LPUart_DisableIrq(M0P_LPUART1,LPUartTxIrq);///<禁止发送中断
LPUart_EnableIrq(M0P_LPUART1,LPUartRxIrq); ///<使能接收中断
}
if(LPUart_GetStatus(M0P_LPUART1, LPUartRC)) ///接收数据
{
LPUart_ClrStatus(M0P_LPUART1, LPUartRC); ///<清接收中断请求
u8RxData = LPUart_ReceiveData(M0P_LPUART1);///读取数据
LPUart_DisableIrq(M0P_LPUART1,LPUartRxIrq);///<禁止接收中断
LPUart_EnableIrq(M0P_LPUART1,LPUartTxIrq); ///<使能发送中断
//LPUart_SendDataIt(M0P_LPUART1, ~u8RxData); ///把接收数据取反,并发送
LPUart_SendDataIt(M0P_LPUART1, u8RxData); ///收到数据返回什么数据
}
}
串口调试助手:以16进制方式 发送一个字节11,
收到的数据 如下,有是有收到一个字节,有时候收到两个字节,数据也不对,这是为什么?
91 91
11
3F
11
3F
11
91
91
3F
11 |