1. 程式人生 > >STM32F0兩路AD配置參考

STM32F0兩路AD配置參考

static void GPIO_Config(void)
{
    GPIO_InitTypeDef GPIO_InitStructure;

    /* Enable the GPIOA Clock */
    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);

    /* Configure PA.1 (ADC Channel1) & PA.4 (ADC Channel4) in analog mode */
    GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_1 | GPIO_Pin_4;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN;
    GPIO_InitStructure.GPIO_Speed= GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
    GPIO_Init(GPIOA, &GPIO_InitStructure);
}

static void DMA_Config(void)
{
    DMA_InitTypeDef DMA_InitStructure;

    /* Enable DMA1 clock */
    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);
    //DMA1通道1配置
    DMA_DeInit(DMA1_Channel1);
    //外設地址
    DMA_InitStructure.DMA_PeripheralBaseAddr = ADC1_DR_ADDRESS;
    //記憶體地址
    DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)&RegularConvertedAdcValue;
    //DMA傳輸方向單向
    DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;
    //設定DMA在傳輸時緩衝區的長度
    DMA_InitStructure.DMA_BufferSize = 2;
    //設定DMA的外設遞增模式,一個外設
    DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
    //設定DMA的記憶體遞增模式
    DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;
    //外設資料字長
    DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;
    //記憶體資料字長
    DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;
    //設定DMA的傳輸模式:連續不斷的迴圈模式
    DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;
    //設定DMA的優先級別
    DMA_InitStructure.DMA_Priority = DMA_Priority_High;
    //設定DMA的2個memory中的變數互相訪問
    DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;

    DMA_Init(DMA1_Channel1, &DMA_InitStructure);

    /* Enable DMA1 Channel1 */
    DMA_Cmd(DMA1_Channel1, ENABLE);
}

static void ADC_Config(void)
{
    ADC_InitTypeDef  ADC_InitStructure;

    /* ADC1 DeInit */
    ADC_DeInit(ADC1);

    /* Load ADC default value */
    ADC_StructInit(&ADC_InitStructure);

    /* Enable ADC1 clock */
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);

    //轉換解析度
    ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;
    //連續轉換
    ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;
    //外部觸發禁止
    ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None;
    //ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T1_TRGO;
    //資料右對齊
    ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
    //掃描方向
    ADC_InitStructure.ADC_ScanDirection = ADC_ScanDirection_Upward;

    ADC_Init(ADC1, &ADC_InitStructure);

    /* ADC1 regular channel1 configuration */
    ADC_ChannelConfig(ADC1, ADC_Channel_1, ADC_SampleTime_55_5Cycles);
    ADC_ChannelConfig(ADC1, ADC_Channel_4, ADC_SampleTime_55_5Cycles);

    /* ADC Calibration */
    ADC_GetCalibrationFactor(ADC1);

    /* ADC DMA request in Circular mode */
    ADC_DMARequestModeConfig(ADC1, ADC_DMAMode_Circular);

    /* Enable ADC DMA request */
    ADC_DMACmd(ADC1, ENABLE);

    /* Enable ADC1 */
    ADC_Cmd(ADC1, ENABLE);

    /* Wait until the ADC enable falg is set to start conversion */
    while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_ADEN));

    /* Start ADC1 Software Conversion */
    ADC_StartOfConversion(ADC1);
}

相關推薦

STM32F0AD配置參考

static void GPIO_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; /* Enable the GPIOA Clock */ RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, E

STM32L073RZ進行AD電壓訊號採集(非DMA方式)

使用STM32L073RZ除錯兩路AD電壓訊號採集,剛開始用DMA方式,發現開啟DMA轉換USB虛擬串列埠無法識別。現在想不通過DMA方式來進行兩路AD電壓訊號採集。單路讀取方法為 aADCxConvertedData = HAL_ADC_GetValue(&

最近進坑了DCS-3950雙層交換機鏈聚合配置整理

交換機 雙層 交換機A上1-2端口對應交換機B上3-4端口PC1鏈接交換機A上23端口PC2鏈接交換機B上24端口命令如下:DCS-3950-28C>enDCS-3950-28C#conDCS-3950-28C(config)#hostname switchAswitchA(config)#%J

Yii2之——安裝配置

global 開啟 composer 進行 light 4.3 com htm creat 1.安裝Asset插件(composer 全局) composer global require "fxp/composer-asset-plugin:^1.2.0" 2.下載

echarts2基本配置參考

可選 需求 label window 圖例 16px 技術分享 timeout char 項目中初次使用echarts2,感覺好多配置項不知道是啥,在文檔裏也不知從何找起,在此總結一下(僅做向導用,不會太詳細,大家可根據屬性到官方文檔查找),以便今後查看,同時希望幫到ech

linux 內核配置參考

emp toc href pen 內部 效率 rime 寫入 wire 對於每一個配置選項,用戶可以回答"y"、"m"或"n"。其中"y"表示將相應特性的支持或設備驅動程序編譯進內核;"m"表示將相應特性的支持或設備驅動程序編譯成可加載模塊,在需要時,可由系統或用戶自行加

OSPF的高級應用之地址匯總與虛鏈配置

路由協議 ospf協議 虛鏈路 楊書凡 地址匯總 在大型網絡中,要使路由器發揮最好的性能,需要做一些優化。而由於一些原因,造成了OSPF區域骨幹區域沒有和非骨幹區域相連、骨幹區域不連續等問題。如要更改區域所有路由器配置,工作量較大,這時可使用虛鏈路連接沒有連接在一起的區域,還有助於

Intellij IDEA配置參考資料

body log blank posit tar introduce cnblogs www. nbsp 1.理解Intellij IDEA的項目配置和Web部署參考地址 2.IntelliJ IDEA 項目相關的幾個重要概念介紹 3. IntelliJ IDEA WEB項

【資源共享】RK3288 WiFi&BT 開發配置參考說明

fontsize 介紹 log LV 社區 fire .net thread src 本文檔主要介紹RK3288平臺的WiFi&BT配置說明。 下載地址:http://dev.t-firefly.com/thread-13642-1-1.html

[轉]ASP.NET 核心模塊配置參考

add 正在 其他 lac 停止 開發人員 單位 並且 rtai 本文轉自:https://docs.microsoft.com/zh-cn/aspnet/core/host-and-deploy/aspnet-core-module?view=aspnetcore-2.1

ssh臺機器配置互相信任關系

Linux配置ssh互信操作步驟: 1.生成公鑰 [root@hadoop000 ~]# rm -rf ~/.ssh [root@hadoop000 ~]# ssh-keygen [root@hadoop001 ~]# rm -rf ~/.ssh [root@hadoop001 ~]# ssh-keygen

聚合配置

name abi 設置 per 協商 ctrl+ static pro ive 二層鏈路聚合配置一、手工負載分擔模式配置(1)LSW1:<Huawei>sysEnter system view, return user view with Ctrl+Z.[Hua

Caddy環境下一些Web應用程序的配置參考

cloud fig transport mov lin 參考 structure strong edi Caddy一個的英文輕量級的Web服務器,部署和配置很快,伏筆VPS也喜愛用,以來的使用範疇估量會越來越廣,而就是目前一些Web應用程序的配置文件難找,信任許多人都有體驗

Spring Cloud 進階之 -- 統一配置中心 Config Client 端配置

Spring Cloud 統一配置中心 - Config Client 搭建步驟: 1、引入依賴 2、application.yml 改為 bootstrap.yml 3、增加spring.cloud.config 相關配置,去掉已提交到git的配置 4、測試去掉的配置是否能從g

Spring Cloud 進階之 -- 統一配置中心 Config Server 搭建

Spring Cloud 的統一配置中心 - Config Server 搭建步驟: 1、新建一個git專案待使用(我用了gitee) 2、本地新建專案,引入依賴 3、啟動類加註解支援,配置檔案新增git支援(svn類似) 4、啟動測試 5、關於檔案命名規則  

同時安裝個Tomcat配置教程(Win10)

轉載註明出處 https://blog.csdn.net/zouguo1211/article/details/83997231 前言 在日常開發中,有時候一個Tomcat容器不能滿足我們的需求,那麼能不能在一臺機器上配置多個Tomcat呢?答案是可以的! 本文將演示如何在W

vim配置參考

set helplang=cn set encoding=utf-8 " 自動語法高亮 syntax on " 檢測檔案型別 filetype on " 顯示行號 set number " replace tab with space set expandtab " 設定 tab 長

STC51微控制器中斷與定時器配置參考

*外中斷INT0--------void intsvr0(void) interrupt 0 using 1 *定時/計數器T0-----void timer0(void) interrupt 1 using 1 *外中斷INT1--------void intsvr0(void)

python填坑之:tesserocr配置

    最近在學爬蟲,在模擬登入網站的時候常常需要輸入驗證碼,最常見的就是OCR(Optical Character Recognition,光學字元識別) ,於是乎瞭解到tesserocr這個庫,但是安裝的過程可謂坎坷。    

applicationhost.config配置參考

requestFiltering標籤定義了不同擴充套件型別的檔案是否進行過濾的規則,預設的參考配置如下: <requestFiltering> <fileExtensions allowUnlisted="true"