<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > STM32單片機中UART的使用過程

          STM32單片機中UART的使用過程

          作者: 時間:2013-02-22 來源:網(wǎng)絡(luò) 收藏

          而后使能收發(fā)中斷。如:

          /* Enable USART1 Receive and Transmit interrupts */

          USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);

          USART_ITConfig(USART1, USART_IT_TXE, ENABLE);

          // USART_ITConfig(USART1, USART_IT_TXE, DISABLE);

          注意:一般不將TXE中斷使能。因為一旦將此中斷使能,如果發(fā)送緩沖區(qū)空,則會立即進入中斷中,因此可在程序中需要發(fā)送數(shù)據(jù)處,使能TXE中斷。在中斷種用USART_SendData()來發(fā)送數(shù)據(jù)。

          完成中斷使能后,還需要使能UART口:

          如:

          /* Enable the USART1 */

          USART_Cmd(USART1, ENABLE);

          /* Enable the USART2 */

          USART_Cmd(USART2, ENABLE);

          中斷程序(stm32f10x_it.c)可以如下完成發(fā)送:注意所有的的串口中斷需要在中斷服務(wù)程序中判斷中斷源以分別處理。

          void USART1_IRQHandler(void)

          {

          if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)

          {

          /* Read one byte from the receive data register */

          RxBuffer1[RxCounter1++] = USART_ReceiveData(USART1);

          if(RxCounter1 == NbrOfDataToRead1)

          {

          USART_ITConfig(USART1, USART_IT_RXNE, DISABLE);//發(fā)送完成后,將RXNE禁止。

          }

          }

          if(USART_GetITStatus(USART1, USART_IT_TXE) != RESET)

          {

          USART_SendData(USART1, TxBuffer1[TxCounter1++]);

          if(TxCounter1 == NbrOfDataToTransfer1)

          {

          USART_ITConfig(USART1, USART_IT_TXE, DISABLE);

          }

          }

          }


          上一頁 1 2 下一頁

          關(guān)鍵詞: STM32 UART 單片機

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();