久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> STM32 >> 瀏覽文章

Rainbow將模擬量轉換成數字量

作者:3984435055   來源:本站原創   點擊數:  更新時間:2014年05月06日   【字體:
    現實生活中大量存在的是模擬量,而數字量則廣泛用于計算機系統,為了能測量模擬量(如:電壓),通常會使用AD轉換器來實現模數轉換。Rainbow板載MCU有兩個AD轉換器,每個轉換器支持16個通道進行AD轉換,在設計Rainbow開發庫的時候,我們只使用了ADC1,可以在以下這16個管腳實現AD轉換:
    PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PB0, PB1, PC0, PC1,PC2, PC3, PC4, PC5
    
    AD轉換的參考電壓和MCU的工作電壓一致,為3.3V;AD轉換器的分辨率是12bit;為了盡可能提高AD轉換的準確度,我們采用了多次轉換結果求平均值的方式,默認轉換10次后求平均值。
    
    使用開發包來進行AD轉換非常簡單,按照下列步驟即可:
    1、將模擬量輸入管腳的模式設置為:GPIO_Mode_AIN,如:pinMode(PA4, GPIO_Mode_AIN);
    2、調用analogRead()讀取指定模擬量的數值
 
    在軟件包的“Projects\Analog”文件夾包含了本文的完整工程,可以直接編譯、燒寫和調試。來看看main.cpp的代碼:
#include "WProgram.h"
 
//模擬量輸入的管腳
#define AIN_PIN PA4
 
void setup()
{
  //初始化開發板
  boardInit();
  Serial.begin();
  //設置模擬量輸入管腳模式
  pinMode(AIN_PIN, GPIO_Mode_AIN);
}
 
void loop()
{
  //讀取指定管腳的模擬量值
  int16_t val = analogRead(AIN_PIN);
  //返回-1表示指定管腳非模擬量輸入管腳
  if(val < 0)
    return;
  else
  {
    Serial.print("Analog Value:");
    Serial.println(val);
    //每3秒取一次轉換結果
    delay(3000);
   }
}
 
int main(void)
{
  setup();
  while(1) loop();
}
 
    程序首先對模擬量輸入管腳進行相應模式設置,然后調用analogRead()方法讀取模擬值,如果返回-1表示管腳并非ADC模擬量輸入通道,有效的模擬量值將通過串口,在上位機中進行顯示。
 
    上面的程序編譯無誤后,將程序燒寫到Rainbow中,將USB-TTL模塊接入,在上位機上打開串口調試工具。在VCC、GND接入一個電位器,電位器輸出接到PA4,然后我們轉動電位器到某一個位置,軟件將每隔3秒采集一次電壓值并輸出到串口調試工具。如果要得到相應的電壓值,可以用這個公式來求:電壓 = value / 4096 * 3.3

 

關閉窗口

相關文章

主站蜘蛛池模板: 国产精品美女久久久久久久久久久 | 国产精品国产自产拍高清 | 免费 视频 1级 | 国产成人精品一区二区三 | 国产精品视频一区二区三 | 亚洲精品视频三区 | 久久久久www | 欧美一区 | 欧美xxxⅹ性欧美大片 | 九九热在线免费观看 | 午夜寂寞影院列表 | 国产亚洲精品成人av久久ww | 亚洲视频区 | 成人免费在线视频 | 成人激情视频在线 | 免费久久久久久 | 亚洲一区二区高清 | 欧美午夜精品理论片a级按摩 | 精品综合久久 | wwwxxx日本在线观看 | 欧美激情在线观看一区二区三区 | 久久精品a级毛片 | 欧洲尺码日本国产精品 | 免费网站国产 | 91亚洲精品在线观看 | 欧美视频1| 99草免费视频 | 国产精品亚洲综合 | 超碰国产在线 | 国产一级在线 | 午夜国产一级 | 黄色片视频免费 | 久久久国产精品 | 成人亚洲性情网站www在线观看 | 中文字幕在线一区二区三区 | 日韩在线一区二区 | 四虎免费视频 | 欧美在线一二三 | 国产综合精品 | 国产一区二区三区久久久久久久久 | 影音先锋中文字幕在线观看 |