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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > STM32筆記(三)ADC、DMA、USART的綜合練習

          STM32筆記(三)ADC、DMA、USART的綜合練習

          作者: 時間:2016-11-28 來源:網絡 收藏
            我們在這里設置ADC為連續(xù)轉換模式,常規(guī)轉換序列中有兩路轉換通道,分別是ADC_CH10(PC0)和ADC_CH16(片內溫度傳感器)。因為使用了自動多通道轉換,數據的取出工作最適合使用DMA方式取出,so,我們在內存里開辟了一個u16 AD_Value[2]數組,并設置了相應的DMA模塊,使ADC在每個通道轉換結束后啟動DMA傳輸,其緩沖區(qū)數據量為2個HalfWord,使兩路通道的轉換結果自動的分別落到AD_Value[0]和AD_Value[1]中。
            然后,在主函數里,就無需手動啟動AD轉換,等待轉換結束,再取結果了。我們可以在主函數里隨時取AD_Value中的數值,那里永遠都是最新的AD轉換結果。
            如果我們定義一個更大的AD_Value數組,并調整DMA的傳輸數據量(BufferSize)可以實現AD結果的循環(huán)隊列存儲,從而可以進行各種數字濾波算法。
            接著,取到轉換結果后,根據V=(AD_Value/4096)*Vref+的公式可以算出相應通道的電壓值,也可以根據T(℃) =(1.43 - Vad)/34*10^(-6) + 25的算法,得到片內溫度傳感器的測量溫度值了。
            通過重新定義putchar函數,及包含"stdio.h"頭文件,我們可以方便的使用標準C的庫函數printf(),實現串口通信
            相關的官方例程,可以參考FWLib V2.0的ADCADC1_DMA和USARTprintf兩個目錄下的代碼。

          本代碼例子是基于萬利199的開發(fā)板EK-STM32F實現,CPU=STM32F103VBT6


          關鍵詞: STM32ADCDMAUSAR

          評論


          技術專區(qū)

          關閉
          看屁屁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); })();