娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2024年10月30日(星期三)

正在發生

2019年10月30日 | STM32F103實現雙ADC同步采集電壓信號

發布者:快樂家庭 來源: eefocus關鍵字:STM32F103  雙ADC  同步采集  電壓信號 手機看文章 掃描二維碼
隨時隨地手機看文章

STM32一般都擁有1~3個ADC,這些ADC可以獨立使用,也可以使用雙重/三重ADC采樣模式,本文使用STM32F103ZET6的雙重ADC模式,同步采集兩個通道的電壓信號。

一、注意事項

1、配置ADC的采樣模式為同步規則采樣

ADC1和ADC2采樣模式相同,但其中ADC1為主ADC,ADC2為從ADC。

該模式在ADC_CR1寄存器中配置:(具體資料請參詳STM32參考手冊)

在這里插入圖片描述

2、使能DMA位

在雙ADC模式中,ADC1和ADC2的規則通道轉換數據均會保存到主數據寄存器,也就是ADC1數據寄存器(ADC1_DR)中。為了能在主寄存器中讀取從ADC的轉換數據,必須使能DMA位。** 無論是否使用DMA傳輸規則通道數據 **

在ADC_CR2寄存器中配置:

在這里插入圖片描述

3、觸發方式配置

如果ADC1使用軟件觸發,ADC2則使用外部通道觸發;ADC1使用外部事件觸發時,ADC2設置成軟件觸發,這樣可以防止意外觸發從轉換。


二、代碼配置

1、adc.c

 /****

 *   程序功能:實現雙ADC同步采集,每路ADC各有1個通道(單通道)

 *

 ******/

 #include "adc.h"

 #include "delay.h"

 #include "usart.h"


#define M 128

#define N 8

uint16_t   value[N][M];

u32 ADC_ConvertedValue;  



//初始化ADC1

void Adc1_Multi_Init(void)

{

ADC_InitTypeDef ADC_InitStructure; 

GPIO_InitTypeDef GPIO_InitStructure;

 

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA |RCC_APB2Periph_ADC1 , ENABLE );   //使能ADC1通道時鐘

 

 

RCC_ADCCLKConfig(RCC_PCLK2_Div6);   //設置ADC分頻因子6 72M/6=12,ADC最大時間不能超過14M

 

//PA1 作為模擬通道輸入引腳

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;  

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; //模擬輸入引腳

GPIO_Init(GPIOA, &GPIO_InitStructure);

 

ADC_DeInit(ADC1);  //復位ADC1,將外設 ADC1 的全部寄存器重設為缺省值

 

ADC_InitStructure.ADC_Mode = ADC_Mode_RegSimult; //ADC工作模式:ADC1同步規則組模式

ADC_InitStructure.ADC_ScanConvMode =DISABLE;     //模數轉換工作在非掃描模式

ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;    //模數轉換工作在單次轉換模式

ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; //轉換由軟件而不是外部觸發啟動

ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;   //ADC數據右對齊

ADC_InitStructure.ADC_NbrOfChannel = 1;    //順序進行規則轉換的ADC通道的數目

ADC_Init(ADC1, &ADC_InitStructure);   //根據ADC_InitStruct中指定的參數初始化外設ADCx的寄存器   

 

ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_239Cycles5 );

 

// 開啟ADC的DMA支持

ADC_DMACmd(ADC1, ENABLE);  //使能ADC的DMA位

/* Enable ADC1 */

ADC_Cmd(ADC1, ENABLE); //使能ADC1


/* Enable ADC1 reset calibaration register  使能ADC1復位校準寄存器 */   

ADC_ResetCalibration(ADC1);

/* Check the end of ADC1 reset calibration register   ADC1復位校準寄存器檢查結束*/

while(ADC_GetResetCalibrationStatus(ADC1));


/* Start ADC1 calibaration    啟動ADC1校準 */

ADC_StartCalibration(ADC1);

/* Check the end of ADC1 calibration  ADC1校準檢查結束 */

while(ADC_GetCalibrationStatus(ADC1));

}



//初始化ADC2

void Adc2_Multi_Init(void)

{

ADC_InitTypeDef ADC_InitStructure; 

GPIO_InitTypeDef GPIO_InitStructure;

 

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC |RCC_APB2Periph_ADC2 , ENABLE );   //使能ADC2通道時鐘

 

RCC_ADCCLKConfig(RCC_PCLK2_Div6);   //設置ADC分頻因子6 72M/6=12,ADC最大時間不能超過14M

 

//PB0,1 作為模擬通道輸入引腳

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;   

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; //模擬輸入引腳

GPIO_Init(GPIOC, &GPIO_InitStructure);

 

ADC_DeInit(ADC2);  //復位ADC2,將外設 ADC2 的全部寄存器重設為缺省值

 

ADC_InitStructure.ADC_Mode = ADC_Mode_RegSimult; //ADC工作模式:ADC1同步規則組模式

ADC_InitStructure.ADC_ScanConvMode =DISABLE; //模數轉換工作在非掃描模式

ADC_InitStructure.ADC_ContinuousConvMode = DISABLE; //模數轉換工作在單次轉換模式

ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;   //轉換由軟件而不是外部觸發啟動

ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; //ADC數據右對齊

ADC_InitStructure.ADC_NbrOfChannel = 1; //順序進行規則轉換的ADC通道的數目

ADC_Init(ADC2, &ADC_InitStructure); //根據ADC_InitStruct中指定的參數初始化外設ADCx的寄存器   

 

ADC_RegularChannelConfig(ADC2, ADC_Channel_10, 1, ADC_SampleTime_239Cycles5 );


ADC_ExternalTrigConvCmd(ADC2, ENABLE);   //使能ADC2的外部觸發模式 

 

    /* Enable ADC2 */

ADC_Cmd(ADC2, ENABLE); //使能ADC2


/* Enable ADC1 reset calibaration register  使能ADC2復位校準寄存器 */   

ADC_ResetCalibration(ADC2);

/* Check the end of ADC1 reset calibration register   ADC2復位校準寄存器檢查結束*/

while(ADC_GetResetCalibrationStatus(ADC2));


/* Start ADC1 calibaration    啟動ADC2校準 */

ADC_StartCalibration(ADC2);

/* Check the end of ADC1 calibration  ADC2校準檢查結束 */

while(ADC_GetCalibrationStatus(ADC2));

 

}



/*初始化ADC */

void MY_ADC_Init(void)

{

Adc1_Multi_Init();

Adc2_Multi_Init();

}



void task_adc(void)

{    

int i;

     printf("rn 采樣開始rn");

for(i=0;i {

/* Start ADC1 Software Conversion  啟動ADC1軟件轉換 */

ADC_SoftwareStartConvCmd(ADC1, ENABLE);  //開始轉換

ADC_ConvertedValue=ADC1->DR;

value[0][i] = (ADC_ConvertedValue&0xffff); //獲取ADC的值

        value[1][i] = ((ADC_ConvertedValue>> 16)&0xffff);  //獲取ADC的值

printf("rn 編號%d  t 編號%d  t AD值: %drn", 0,i,  value[0][i]);

printf("rn 編號%d  t 編號%d  t AD值: %drn", 1,i,  value[1][i]); 

}

printf("rn 采樣結束rn");

}


2、adc.h

#ifndef __ADC_H

#define __ADC_H

#include "sys.h"



void Adc1_Multi_Init(void);

void Adc2_Multi_Init(void);

void MY_ADC_Init(void);

void task_adc(void);


#endif 


3、main.c

#include "led.h"

#include "delay.h"

#include "key.h"

#include "sys.h"

#include "usart.h"  

#include "adc.h"

 


 int main(void)

 {  

    

delay_init();     //延時函數初始化   

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設置中斷優先級分組為組2:2位搶占優先級,2位響應優先級

uart_init(115200); //串口初始化為115200

  LED_Init();      //LED端口初始化

  MY_ADC_Init();   //ADC初始化

       

while(1)

{

task_adc();

LED0=!LED0;

delay_ms(250);

}

}


關鍵字:STM32F103  雙ADC  同步采集  電壓信號 引用地址:STM32F103實現雙ADC同步采集電壓信號

上一篇:STM32采集AD電壓
下一篇:記一次在STM32開發踩過得坑(ADC采集、電流大小的影響)

推薦閱讀

集微網消息,近日,微軟研究院在推特上分享了一款設計非常特別的工程機,這款工程機像是由一部手機外加一塊帶水墨屏的翻蓋手機殼組成。據悉,這款工程機是在 Lumia 640 的基礎上將水墨屏部分通過柔性電纜電纜eHealth鉸鏈連接到手機上。然而這塊水墨屏并不支持觸控,但微軟在屏幕下方設計了 5 個觸控按鍵。這塊水墨屏還可以配合 Lumia 640 的屏幕進...
屬于msp430的ad采樣的應用。由于項目需要,在中斷中對AWM3300模擬輸入做了閾值檢測。一般使用ad采樣時,不需要在中斷中做此處理。使用器件型號:msp430F169/msp430F149,AWM3300@honeywell典型應用電路:具體看AWM3300使用手冊#include "msp430x16x.h"#include"AWM.h"//標注CO2的代碼與AWM3300無關double CO2_o,ADC_CO2;//CO2double ADC_Vol_speed=0,su...
  在大力提倡節能減排以及追求高質量生活的今天,冬季供暖系統存在的不足日益顯現出來。我國北方城市大部分采用集中供暖,在整個供暖期內,無論室內有人與無人,系統全天連續供暖;系統熱能的輸送是不變的,不能根據室內外溫度的變化以及個人對室溫的不同要求做出相應的調整。這就造成了熱能的嚴重浪費以及供暖不人性化等問題。本文設計實現了一種基于嵌...
10月28日晚間,納思達發布公告稱,2021年前三季度,公司實現營業收入150.25億元,同比增長0.83%;歸屬于上市公司股東的凈利潤6.75億元,同比增長62.53%。其中,2021年第三季度,公司實現營業收入51.18億元,同比增長2.08%;歸屬于上市公司股東的凈利潤2.49億元,同比增長343.11%。納思達稱,業績變動主要原因如下:業績增長主要原因是公司原裝打印機業務(...

史海拾趣

問答坊 | AI 解惑

長期供應信號源HP83640L/83622A/83752A/8247C/824

一、 綜合測試儀 R&S CMU200(可測GSM900/1800);Agilent8960 E5515B(可測GSM900/1800/1900/GPRS);Agilnet8960 E5515C(OPT:002、003,可測GSM、CDMA);R&S CMD55(可測900/1800);R&S CMD60(DECT測試儀);MT8801B(PHS測試儀); ...…

查看全部問答∨

[原創]公司批發零售紙尿褲,好奇,媽咪寶貝,幫寶適,奶粉等

公司批發零售奶粉:澳美多 澳優 寶樂康 葆嬰 貝因美 賜多利 多美滋 恩貝兒 飛鶴 華惠氏 慧聰 康維多 林貝兒 美可高特 美素 美贊臣 蒙牛 明治 親親寶貝 雀巢 三鹿 三元 森永 圣元 施恩 適寶康 完達山 味全 雅培 雅士利 伊利 優素 奶瓶 優幼 紙尿褲,好 ...…

查看全部問答∨

招賢:美新半導體應用(方案)工程師-夠才你就來!

要求: a.本科或以上,電子相關專業;b.3年電子實際開發經驗,有一定的硬件設計經驗,了解EMC/EMI和相關測試;c.熟悉MCU應用和C語言, 了解Matlab等算法模型工具和操作系統優先;d.了解汽車電子系統,有其開發經驗優先;e.工作認真負責,勇于承擔責任, ...…

查看全部問答∨

奇怪的警告!

"Example_281xMcBSP_FFDLB.c", line 157: warning: statement is unreachable "Example_281xMcBSP_FFDLB.c", line 157: remark: controlling expression is constant 在源文件里面有這樣的定義、、 #define WORD_SIZE    8& ...…

查看全部問答∨

發現有人做運放專題,配合學習,大家把壇子里運放的資料的頂起吧

趕快,人多力量大,學習要趁熱打鐵。 我們把運放的資料都頂起,作為運放專題來學習一下。 我覺得這樣效果會很不錯的!…

查看全部問答∨

形象的說明模擬地和數字地

為什么模擬地與數字地應有各自獨立的回路?大家都是地,為什么還分彼此? Link水平很低,常常會問一些低級問題。 幸蒙Perter指點,明白了少許,現在和大家分享一下。 其實本質是對的,就是數字地,模擬地都是地,并不是他們倆頭上長角,十分的怪 ...…

查看全部問答∨

Protel繪圖經驗談

 筆者使用protel多年,積累了一些用其繪制電路圖的使用經驗和技巧,現將這些經驗和技巧成文,希望對大家用protel繪制電路圖有所幫助。 經驗一:   因為protel是專業電路設計軟件,可供電子類各專業設計人員和廣大電子愛好者使用,所提供的 ...…

查看全部問答∨

像諾基亞學習下一站生活

這幾天看到諾基亞新的廣告,記得一句話:互聯應用,中國創造。可以看得出諾基亞從全球擴張到主打某個地區市場的戰略轉移,也可以看得出諾基亞對移動互聯網的信心。記得2008年10月時諾基亞曾展示過了其基于下一站生活方式的全新通信技術與移動互聯網 ...…

查看全部問答∨

Wince 5.0 真機調試問題

    我在用真是還進調試的時候,程序中打了斷點,可是斷點不其作用。後來用其他同事的電腦調試卻可以。應該是我vs還進的問題吧,請高人指點,如何解決這個問題。…

查看全部問答∨

fade in / fade out

  這個月一直有個問題讓我困擾著我.   在CE中是否可以真正意義上的實現相對于屏幕彈出的窗口或是圖片淡入淡出(彈出時)?就是說.在mobile屏幕上(而不是你自己寫的窗口或是其它你程序中的背景圖片上),一個窗口淡入淡出.或是一個 ...…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 巨鹿县| 清水河县| 和静县| 射洪县| 万山特区| 汉寿县| 岢岚县| 南川市| 长垣县| 建德市| 长阳| 通山县| 久治县| 宝山区| 西宁市| 鸡东县| 璧山县| 绵阳市| 巩留县| 牡丹江市| 大理市| 江华| 兴海县| 张掖市| 大名县| 大连市| 金湖县| 孝昌县| 仙桃市| 平度市| 龙门县| 湘潭县| 阳朔县| 福泉市| 镇雄县| 麻栗坡县| 石门县| 蒙城县| 临颍县| 兖州市| 玉林市|