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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > STM32學(xué)習(xí)筆記之USART

          STM32學(xué)習(xí)筆記之USART

          作者: 時間:2016-11-26 來源:網(wǎng)絡(luò) 收藏
          USART功能概述
          接口通過三個引腳與其他設(shè)備連接在一起(見圖248)。任何USART雙向通信至少需要兩個腳:接收數(shù)據(jù)輸入(RX)和發(fā)送數(shù)據(jù)輸出(TX)。
          RX:接收數(shù)據(jù)串行輸。通過過采樣技術(shù)來區(qū)別數(shù)據(jù)和噪音,從而恢復(fù)數(shù)據(jù)。
          TX:發(fā)送數(shù)據(jù)輸出。當(dāng)發(fā)送器被禁止時,輸出引腳恢復(fù)到它的I/O端口配置。當(dāng)發(fā)送器被激活,并且不發(fā)送數(shù)據(jù)時,TX引腳處于高電平。在單線和智能卡模式里,此I/O口被同時用于數(shù)據(jù)的發(fā)送和接收。
          總線在發(fā)送或接收前應(yīng)處于空閑狀態(tài)
          ● 一個起始位
          ● 一個數(shù)據(jù)字(8或9位),最低有效位在前
          ● 0.5,1.5,2個的停止位,由此表明數(shù)據(jù)幀的結(jié)束
          ● 使用分?jǐn)?shù)波特率發(fā)生器 —— 12位整數(shù)和4位小數(shù)的表示方法。
          ● 一個狀態(tài)寄存器(USART_SR)
          ● 數(shù)據(jù)寄存器(USART_DR)
          ● 一個波特率寄存器(USART_BRR),12位的整數(shù)和4位小數(shù)
          ● 一個智能卡模式下的保護(hù)時間寄存器(USART_GTPR)
          關(guān)于以上寄存器中每個位的具體定義,請參考寄存器描述第節(jié):USART寄存器描述。
          在同步模式中需要下列引腳:
          ● CK:發(fā)送器時鐘輸出。此引腳輸出用于同步傳輸?shù)?時鐘, (在Start位和Stop位上沒有時鐘脈沖,軟件可選地,可以在最后一個數(shù)據(jù)位送出一個時鐘脈沖)。數(shù)據(jù)可以在RX上同步被接收。這可以用來控制帶有移位寄存器的外部設(shè)備(例如LCD驅(qū)動器)。時鐘相位和極性都是軟件可編程的。在智能卡模式里,CK可以為智能卡提供時鐘。
          在IrDA模式里需要下列引腳:
          ● IrDA_RDI: IrDA模式下的數(shù)據(jù)輸入。
          ● IrDA_TDO: IrDA模式下的數(shù)據(jù)輸出。
          下列引腳在硬件流控模式中需要:
          ● nCTS: 清除發(fā)送,若是高電平,在當(dāng)前數(shù)據(jù)傳輸結(jié)束時阻斷下一次的數(shù)據(jù)發(fā)送。
          void USART_SendChar(USART_TypeDef* USARTx, uint16_t Data)
          {
          //檢測參數(shù)
          assert_param(IS_USART_ALL_PERIPH(USARTx));
          assert_param(IS_USART_DATA(Data));
          USARTx->DR = (Data & (uint16_t)0x01FF);
          while(!(USARTx->SR & USART_SR_TC));
          }
          void USART_SendString(USART_TypeDef* USARTx, uint8_t *pString)
          {
          while(*pString)
          {
          USART_SendChar(USARTx, *pString++);
          }
          PS: 在非中斷情況下,要通過檢測SR位來判斷是否發(fā)送完成:while(!(USARTx->SR & USART_SR_TC));
          中斷情況下: if(USART_GetITStatus(USARTy, USART_IT_TXE) != RESET)


          評論


          技術(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); })();