1. 程式人生 > >STM32的串列埠空閒中斷

STM32的串列埠空閒中斷

       空閒中斷是在檢測到在資料收受後,總線上在一個位元組的時間內沒有再接收到資料時發生。即串列埠的RXNE位被置位之後才開始檢測,檢測到空閒之後,串列埠的CR1暫存器的IDLE位被硬體置1,必須採用軟體將IDLE位清零才能避免反覆進入空閒中斷。具體的做法是先讀取USART_SR,再讀取USART_DR。需要注意的是,不能採用庫函式USART_ClearFlag()或者USART_ClearItPending()來清除IDEL標註,因為這兩個函式接收的中斷標誌位僅包括:

  • USART_FLAG_CTS: CTS Change flag (not available for UART4 and UART5).
  • USART_FLAG_LBD: LIN Break detection flag.
  • USART_FLAG_TC: Transmission Complete flag.
  • USART_FLAG_RXNE: Receive data register not empty flag.