stormwind123 发表于 2025-3-6 12:03

请问M031的串口超时中断为何无法触发?


9600-N-8-2;


    UART_Open(UART2, 9600);
    /* Set UART line configuration */
    UART2->LINE = UART_WORD_LEN_8 | UART_PARITY_NONE | UART_STOP_BIT_2;



    UART2->FIFO &= ~UART_FIFO_RFITL_4BYTES;
    UART2->FIFO |= UART_FIFO_RFITL_8BYTES;
    UART_SetTimeoutCnt(UART2, 100);


    UART_EnableInt(UART2, UART_INTEN_RDAIEN_Msk | UART_INTEN_RXTOIEN_Msk);

    NVIC_EnableIRQ(UART02_IRQn);


void UART02_IRQHandler(void)
{
    uint8_t UART2_u8InChar = 0xFF;

    if (UART_GET_INT_FLAG(UART2, UART_INTSTS_RDAINT_Msk))
    {
      while(!UART_GET_RX_EMPTY(UART2))
            UART2_BUF = UART_READ(UART2);
      printf("UART_INTSTS_RDAINT_Msk!\n");//这里能触发;

    }

    if (UART_GET_INT_FLAG(UART2, UART_INTSTS_RXTOIF_Msk))
    {
      while(!UART_GET_RX_EMPTY(UART2))
            UART2_BUF = UART_READ(UART2);
      UART2_data_true = 1;
      printf("UART_INTSTS_RXTOIF_Msk!\n");//这里并不能触发,请问是为何?
               
    }

}

奔跑的牛 发表于 2025-3-7 10:42

参考牛卧堂上有一样问题 已经解答了
页: [1]
查看完整版本: 请问M031的串口超时中断为何无法触发?