国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

STM32入門(mén)筆記08_ADC模數(shù)轉(zhuǎn)換器+案例: ADC單通道&ADC多通道

這篇具有很好參考價(jià)值的文章主要介紹了STM32入門(mén)筆記08_ADC模數(shù)轉(zhuǎn)換器+案例: ADC單通道&ADC多通道。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

AD模數(shù)轉(zhuǎn)換器

ADC簡(jiǎn)介

  • ADC(Analog-Digtal Converter) 模擬-數(shù)字轉(zhuǎn)換器
  • ADC可以將引腳上連續(xù)變化的模擬電壓轉(zhuǎn)換為內(nèi)存中存儲(chǔ)的數(shù)字變量, 建立模擬電路到數(shù)字電路的橋梁
  • 12位逐次逼近型ADC, 1us轉(zhuǎn)換時(shí)間
  • 輸入電壓范圍: 0~3.3V, 轉(zhuǎn)換結(jié)果范圍: 0~4095
  • 18個(gè)輸入通道, 可測(cè)量16個(gè)外部和2個(gè)內(nèi)部信號(hào)源
  • 規(guī)則組和注入組兩個(gè)轉(zhuǎn)換單元
  • 模擬看門(mén)狗自動(dòng)監(jiān)測(cè)輸入電壓范圍
  • STM32F103C8T6 ADC資源: ADC1、ADC2, 10個(gè)外部輸入通道

逐次逼近型ADC

adc_nbrofchannel,單片機(jī)學(xué)習(xí)筆記,stm32,單片機(jī),嵌入式硬件,c語(yǔ)言

  • IN0~IN7是八個(gè)輸入通道
  • 通過(guò)配置ADDA~ADDC可以選擇一個(gè)通道作為信號(hào)輸入
  • 通過(guò)比較器, DAC逐漸逼近輸入信號(hào), DAC的值最終與輸入信號(hào)十分接近

ADC框圖

adc_nbrofchannel,單片機(jī)學(xué)習(xí)筆記,stm32,單片機(jī),嵌入式硬件,c語(yǔ)言

ADC基本結(jié)構(gòu)

adc_nbrofchannel,單片機(jī)學(xué)習(xí)筆記,stm32,單片機(jī),嵌入式硬件,c語(yǔ)言

輸入通道

通道 ADC1 ADC2 ADC3
通道0 PA0 PA0 PA0
通道1 PA1 PA1 PA1
通道2 PA2 PA2 PA2
通道3 PA3 PA3 PA3
通道4 PA4 PA4 PF6
通道5 PA5 PA5 PF7
通道6 PA6 PA6 PF8
通道7 PA7 PA7 PF9
通道8 PB0 PB0 PF10
通道9 PB1 PB1
通道10 PC0 PC0 PC0
通道11 PC1 PC1 PC1
通道12 PC2 PC2 PC2
通道13 PC3 PC3 PC3
通道14 PC4 PC4
通道15 PC5 PC5
通道16 溫度傳感器
通道17 內(nèi)部參考電壓

轉(zhuǎn)換模式

  • 單次轉(zhuǎn)換, 非掃描模式

adc_nbrofchannel,單片機(jī)學(xué)習(xí)筆記,stm32,單片機(jī),嵌入式硬件,c語(yǔ)言

  • 連續(xù)轉(zhuǎn)換, 非掃描模式
    adc_nbrofchannel,單片機(jī)學(xué)習(xí)筆記,stm32,單片機(jī),嵌入式硬件,c語(yǔ)言
  • 單次轉(zhuǎn)換, 掃描模式

adc_nbrofchannel,單片機(jī)學(xué)習(xí)筆記,stm32,單片機(jī),嵌入式硬件,c語(yǔ)言

  • 連續(xù)轉(zhuǎn)換, 掃描模式

adc_nbrofchannel,單片機(jī)學(xué)習(xí)筆記,stm32,單片機(jī),嵌入式硬件,c語(yǔ)言

觸發(fā)控制

adc_nbrofchannel,單片機(jī)學(xué)習(xí)筆記,stm32,單片機(jī),嵌入式硬件,c語(yǔ)言

數(shù)據(jù)對(duì)齊

  • 數(shù)據(jù)右對(duì)齊:

adc_nbrofchannel,單片機(jī)學(xué)習(xí)筆記,stm32,單片機(jī),嵌入式硬件,c語(yǔ)言

  • 數(shù)據(jù)左對(duì)齊:
    adc_nbrofchannel,單片機(jī)學(xué)習(xí)筆記,stm32,單片機(jī),嵌入式硬件,c語(yǔ)言

轉(zhuǎn)換時(shí)間

  • AD轉(zhuǎn)換的步驟: 采樣, 保持, 量化, 編碼

  • STM32 ADC的總轉(zhuǎn)換時(shí)間為:

    ? Tconv = 采樣時(shí)間 + 12.5個(gè)ADC周期

  • 例如: 當(dāng)ADCCLK = 14MHz, 采樣時(shí)間為1.5個(gè)ADC周期

    ? Tconv = 1.5 + 12.5 = 14個(gè)ADC周期 = 1us

校準(zhǔn)

  • ADC有一個(gè)內(nèi)置自校準(zhǔn)模式。校準(zhǔn)可大幅減小因內(nèi)部電容器組的變化而造成的精準(zhǔn)度誤差。校準(zhǔn)期間, 在每個(gè)電容器上都會(huì)計(jì)算出一個(gè)修正碼(數(shù)字值), 這個(gè)碼用于消除在隨后的轉(zhuǎn)換中每個(gè)電容器上產(chǎn)生的誤差
  • 建議在每次上電后執(zhí)行一次校準(zhǔn)
  • 啟動(dòng)校準(zhǔn)前, ADC必須處于關(guān)電狀態(tài)超過(guò)至少兩個(gè)ADC時(shí)鐘周期

硬件電路

adc_nbrofchannel,單片機(jī)學(xué)習(xí)筆記,stm32,單片機(jī),嵌入式硬件,c語(yǔ)言

案例1: ADC單通道

配置ADC轉(zhuǎn)換

void AD_Init(void)
{
	// RCC使能時(shí)鐘
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);
	RCC_ADCCLKConfig(RCC_PCLK2_Div6);  // 12MHz
	// 配置GPIO口
	GPIO_InitTypeDef GPIO_InitStructure;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
	GPIO_Init(GPIOA, &GPIO_InitStructure);
	// 選擇規(guī)則通道
	ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_55Cycles5);
	
	// 配置ADC轉(zhuǎn)換器
	ADC_InitTypeDef ADC_InitStructure;
	ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;  // 單次轉(zhuǎn)換或者連續(xù)轉(zhuǎn)換
	ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;  // 數(shù)據(jù)對(duì)齊模式
	ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;  // ADC模式, 單獨(dú)還是交叉
	ADC_InitStructure.ADC_NbrOfChannel = 1;  // 掃描的通道數(shù)
	ADC_InitStructure.ADC_ScanConvMode = DISABLE;  // 掃描模式或者非掃描模式
	ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;  // 觸發(fā)控制
	ADC_Init(ADC1, &ADC_InitStructure);
	
	// 開(kāi)啟ADC功能
	ADC_Cmd(ADC1, ENABLE);
	
	// ADC校準(zhǔn)
	ADC_ResetCalibration(ADC1);
	while(ADC_GetResetCalibrationStatus(ADC1) == SET);  // 已初始化為零
	ADC_StartCalibration(ADC1);
	while (ADC_GetCalibrationStatus(ADC1) == SET); 
	
}

RCC_ADCCLKConfig

/**
  * @brief  Configures the ADC clock (ADCCLK).
  * @param  RCC_PCLK2: defines the ADC clock divider. This clock is derived from 
  *   the APB2 clock (PCLK2).
  *   This parameter can be one of the following values:
  *     @arg RCC_PCLK2_Div2: ADC clock = PCLK2/2
  *     @arg RCC_PCLK2_Div4: ADC clock = PCLK2/4
  *     @arg RCC_PCLK2_Div6: ADC clock = PCLK2/6
  *     @arg RCC_PCLK2_Div8: ADC clock = PCLK2/8
  * @retval None
  */
void RCC_ADCCLKConfig(uint32_t RCC_PCLK2)

ADC_ContinuousConvMode

*!< Specifies whether the conversion is performed in
                                               Continuous or Single mode.
                                               This parameter can be set to ENABLE or DISABLE. */

ADC_DataAlign

#define ADC_DataAlign_Right                        ((uint32_t)0x00000000)
#define ADC_DataAlign_Left                         ((uint32_t)0x00000800)

ADC_Mode

#define ADC_Mode_Independent                       ((uint32_t)0x00000000)
#define ADC_Mode_RegInjecSimult                    ((uint32_t)0x00010000)
#define ADC_Mode_RegSimult_AlterTrig               ((uint32_t)0x00020000)
#define ADC_Mode_InjecSimult_FastInterl            ((uint32_t)0x00030000)
#define ADC_Mode_InjecSimult_SlowInterl            ((uint32_t)0x00040000)
#define ADC_Mode_InjecSimult                       ((uint32_t)0x00050000)
#define ADC_Mode_RegSimult                         ((uint32_t)0x00060000)
#define ADC_Mode_FastInterl                        ((uint32_t)0x00070000)
#define ADC_Mode_SlowInterl                        ((uint32_t)0x00080000)
#define ADC_Mode_AlterTrig                         ((uint32_t)0x00090000)

ADC_NbrOfChannel

 /*!< Specifies the number of ADC channels that will be converted
                                               using the sequencer for regular channel group.
                                               This parameter must range from 1 to 16. */

ADC_ScanConvMode

/*!< Specifies whether the conversion is performed in
                                               Scan (multichannels) or Single (one channel) mode.
                                               This parameter can be set to ENABLE or DISABLE */

ADC_ExternalTrigConv

#define ADC_ExternalTrigConv_T1_CC1                ((uint32_t)0x00000000) /*!< For ADC1 and ADC2 */
#define ADC_ExternalTrigConv_T1_CC2                ((uint32_t)0x00020000) /*!< For ADC1 and ADC2 */
#define ADC_ExternalTrigConv_T2_CC2                ((uint32_t)0x00060000) /*!< For ADC1 and ADC2 */
#define ADC_ExternalTrigConv_T3_TRGO               ((uint32_t)0x00080000) /*!< For ADC1 and ADC2 */
#define ADC_ExternalTrigConv_T4_CC4                ((uint32_t)0x000A0000) /*!< For ADC1 and ADC2 */
#define ADC_ExternalTrigConv_Ext_IT11_TIM8_TRGO    ((uint32_t)0x000C0000) /*!< For ADC1 and ADC2 */

#define ADC_ExternalTrigConv_T1_CC3                ((uint32_t)0x00040000) /*!< For ADC1, ADC2 and ADC3 */
#define ADC_ExternalTrigConv_None                  ((uint32_t)0x000E0000) /*!< For ADC1, ADC2 and ADC3 */

#define ADC_ExternalTrigConv_T3_CC1                ((uint32_t)0x00000000) /*!< For ADC3 only */
#define ADC_ExternalTrigConv_T2_CC3                ((uint32_t)0x00020000) /*!< For ADC3 only */
#define ADC_ExternalTrigConv_T8_CC1                ((uint32_t)0x00060000) /*!< For ADC3 only */
#define ADC_ExternalTrigConv_T8_TRGO               ((uint32_t)0x00080000) /*!< For ADC3 only */
#define ADC_ExternalTrigConv_T5_CC1                ((uint32_t)0x000A0000) /*!< For ADC3 only */
#define ADC_ExternalTrigConv_T5_CC3                ((uint32_t)0x000C0000) /*!< For ADC3 only */

整體代碼:

ADC.c
#include "stm32f10x.h"

/*
初始化ADC
*/
void AD_Init(void)
{
	// RCC使能時(shí)鐘
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);
	RCC_ADCCLKConfig(RCC_PCLK2_Div6);  // 12MHz
	// 配置GPIO口
	GPIO_InitTypeDef GPIO_InitStructure;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
	GPIO_Init(GPIOA, &GPIO_InitStructure);
	// 選擇規(guī)則通道
	ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_55Cycles5);
	
	// 配置ADC轉(zhuǎn)換器
	ADC_InitTypeDef ADC_InitStructure;
	ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;  // 單次轉(zhuǎn)換或者連續(xù)轉(zhuǎn)換
	ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;  // 數(shù)據(jù)對(duì)齊模式
	ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;  // ADC模式, 單獨(dú)還是交叉
	ADC_InitStructure.ADC_NbrOfChannel = 1;  // 掃描的通道數(shù)
	ADC_InitStructure.ADC_ScanConvMode = DISABLE;  // 掃描模式或者非掃描模式
	ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;  // 觸發(fā)控制
	ADC_Init(ADC1, &ADC_InitStructure);
	
	// 開(kāi)啟ADC功能
	ADC_Cmd(ADC1, ENABLE);
	
	// ADC校準(zhǔn)
	ADC_ResetCalibration(ADC1);
	while(ADC_GetResetCalibrationStatus(ADC1) == SET);  // 已初始化為零
	ADC_StartCalibration(ADC1);
	while (ADC_GetCalibrationStatus(ADC1) == SET); 
	
}

/*
獲取ADC模塊轉(zhuǎn)換的值
*/
uint16_t AD_GetValue(void)
{
	ADC_SoftwareStartConvCmd(ADC1, ENABLE);  // 軟件觸發(fā)
	while(ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC) == RESET);  // 等待轉(zhuǎn)換完畢
	return ADC_GetConversionValue(ADC1);
}
main.c
#include "stm32f10x.h" 
#include "delay.h"
#include "OLED.h"
#include "ADC.h"
// ADC單通道
// 2023年3月25日19:12:09
uint16_t ADValue;
float volatge;

int main(void)
{
	OLED_Init();
	AD_Init();
	OLED_ShowString(1, 1, "ADValue:");
	OLED_ShowString(2, 1, "Volatge:0.00V");
	while(1)
	{
		ADValue = AD_GetValue();
		volatge = (float)ADValue / 4095 * 3.3;
		
		OLED_ShowNum(1, 9, ADValue, 4);
		OLED_ShowNum(2, 9, volatge, 1);
		OLED_ShowNum(2, 11, (uint16_t)(volatge * 100)% 100, 2);
		Delay_ms(100);
	}
}

案例2: ADC多通道

整體代碼

ADC.c
#include "stm32f10x.h"

/*
初始化ADC
*/
void AD_Init(void)
{
	// RCC使能時(shí)鐘
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);
	RCC_ADCCLKConfig(RCC_PCLK2_Div6);  // 12MHz
	// 配置GPIO口
	GPIO_InitTypeDef GPIO_InitStructure;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3;
	GPIO_Init(GPIOA, &GPIO_InitStructure);
	
	// 配置ADC轉(zhuǎn)換器
	ADC_InitTypeDef ADC_InitStructure;
	ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;  // 單次轉(zhuǎn)換或者連續(xù)轉(zhuǎn)換
	ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;  // 數(shù)據(jù)對(duì)齊模式
	ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;  // ADC模式, 單獨(dú)還是交叉
	ADC_InitStructure.ADC_NbrOfChannel = 1;  // 掃描的通道數(shù)
	ADC_InitStructure.ADC_ScanConvMode = DISABLE;  // 掃描模式或者非掃描模式
	ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;  // 觸發(fā)控制
	ADC_Init(ADC1, &ADC_InitStructure);
	
	// 開(kāi)啟ADC功能
	ADC_Cmd(ADC1, ENABLE);
	
	// ADC校準(zhǔn)
	ADC_ResetCalibration(ADC1);
	while(ADC_GetResetCalibrationStatus(ADC1) == SET);  // 已初始化為零
	ADC_StartCalibration(ADC1);
	while (ADC_GetCalibrationStatus(ADC1) == SET); 
	
}

/*
獲取ADC模塊轉(zhuǎn)換的值
*/
uint16_t AD_GetValue(uint8_t ADC_Channel)
{
	ADC_RegularChannelConfig(ADC1, ADC_Channel, 1, ADC_SampleTime_55Cycles5);
	ADC_SoftwareStartConvCmd(ADC1, ENABLE);  // 軟件觸發(fā)
	while(ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC) == RESET);  // 等待轉(zhuǎn)換完畢
	return ADC_GetConversionValue(ADC1);
}
main.c
#include "stm32f10x.h" 
#include "delay.h"
#include "OLED.h"
#include "ADC.h"
// ADC多通道
// 2023年3月25日20:42:57
uint16_t AD0, AD1, AD2, AD3;
float volatge;

int main(void)
{
	OLED_Init();
	AD_Init();
	OLED_ShowString(1, 1, "AD0:");
	OLED_ShowString(2, 1, "AD1:");
	OLED_ShowString(3, 1, "AD2:");
	OLED_ShowString(4, 1, "AD3:");
	while(1)
	{
		AD0 = AD_GetValue(ADC_Channel_0);
		AD1 = AD_GetValue(ADC_Channel_1);
		AD2 = AD_GetValue(ADC_Channel_2);
		AD3 = AD_GetValue(ADC_Channel_3);
		
		OLED_ShowNum(1, 5, AD0, 4);
		OLED_ShowNum(2, 5, AD1, 4);
		OLED_ShowNum(3, 5, AD2, 4);
		OLED_ShowNum(4, 5, AD3, 4);
		
		Delay_ms(100);
	}
}

參考資料

【STM32入門(mén)教程-2023持續(xù)更新中】 https://www.bilibili.com/video/BV1th411z7sn/?p=22&share_source=copy_web&vd_source=ee06a25b3dfb2900ab707b01fdff6667文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-766225.html

到了這里,關(guān)于STM32入門(mén)筆記08_ADC模數(shù)轉(zhuǎn)換器+案例: ADC單通道&ADC多通道的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • STM32模數(shù)轉(zhuǎn)換器(ADC)

    STM32模數(shù)轉(zhuǎn)換器(ADC)

    1.ADC的簡(jiǎn)要? 我們首先說(shuō)一下ADC的轉(zhuǎn)換過(guò)程,然后說(shuō)一下原理,當(dāng)然如果嫌啰嗦可以直接跳過(guò)。 ?ADC是英文Analog-to-Digital Converter縮寫(xiě),翻譯過(guò)來(lái)就是模數(shù)轉(zhuǎn)換器,是指將連續(xù)變化的模擬信號(hào)轉(zhuǎn)換為離散的數(shù)字信號(hào)的器件。A/D轉(zhuǎn)換的作用是將時(shí)間連續(xù)、幅值也連續(xù)的模擬信號(hào)轉(zhuǎn)

    2024年02月16日
    瀏覽(20)
  • STM32之模數(shù)轉(zhuǎn)換器ADC

    STM32之模數(shù)轉(zhuǎn)換器ADC

    目錄 1、ADC介紹 1.什么是ADC? ADC的全稱是Analog-to-Digital Converter,指模擬/數(shù)字轉(zhuǎn)換器 ?2.ADC的性能指標(biāo) 3.ADC特性 12位分辨率 4.ADC通道 5.ADC轉(zhuǎn)換順序 ?6.ADC觸發(fā)方式 ?7.ADC轉(zhuǎn)化時(shí)間 ?8.ADC轉(zhuǎn)化模式 ?9.模擬看門(mén)狗 實(shí)驗(yàn):使用ADC讀取煙霧傳感器的值? CubeMX配置 ? ?編輯?代碼實(shí)現(xiàn) ?效

    2024年02月04日
    瀏覽(55)
  • STM32之模數(shù)轉(zhuǎn)換器(ADC)

    STM32之模數(shù)轉(zhuǎn)換器(ADC)

    一、模數(shù)轉(zhuǎn)換器介紹 1、模數(shù)轉(zhuǎn)換器簡(jiǎn)介 為什么使用模擬轉(zhuǎn)換器?? 因?yàn)镸CU只能識(shí)別01010101的數(shù)字信號(hào),而外部物理信號(hào)均為模擬信號(hào),如聲音、光、電等,所以為了讓計(jì)算機(jī)能夠處理外部物理的信息,必須要通過(guò)模擬轉(zhuǎn)換器將模擬量轉(zhuǎn)換成數(shù)字量。 模數(shù)轉(zhuǎn)換器:將模擬信號(hào)

    2024年02月20日
    瀏覽(31)
  • 【STM32學(xué)習(xí)】模數(shù)轉(zhuǎn)換器——ADC

    【STM32學(xué)習(xí)】模數(shù)轉(zhuǎn)換器——ADC

    [STM32固件庫(kù)(標(biāo)準(zhǔn)外設(shè)庫(kù))入門(mén)學(xué)習(xí) 第七章 ADC數(shù)模轉(zhuǎn)換(一) 劉凱:STM32F103(一):ADC 通過(guò)上述的兩個(gè)鏈接以及stm32的參考手冊(cè),應(yīng)該可以把ADC理解的差不多了,接下來(lái)說(shuō)一下自己對(duì)某些內(nèi)容的理解。 STM32 ADC轉(zhuǎn)換速度與精度 對(duì)于AD轉(zhuǎn)換所需要的時(shí)間,我們經(jīng)??吹剑篢conv = S

    2024年02月05日
    瀏覽(19)
  • STM32F4_模數(shù)轉(zhuǎn)換器(ADC)詳解

    STM32F4_模數(shù)轉(zhuǎn)換器(ADC)詳解

    目錄 1. ADC是什么 2. ADC主要特性 3. ADC框圖 3.1 ADC開(kāi)關(guān)控制 3.2 ADC時(shí)鐘 3.3 通道選擇 3.4 單次轉(zhuǎn)換模式和連續(xù)轉(zhuǎn)換模式 3.5 時(shí)序圖 3.6 模擬看門(mén)狗 4 溫度傳感器 5. ADC中斷 6. ADC初始化結(jié)構(gòu)體 6.1 ADC相關(guān)實(shí)驗(yàn)配置 7. 相關(guān)寄存器 7.1 ADC控制寄存器:ADC_CR1和ADC_CR2 7.2 ADC通用控制寄存器:A

    2024年02月15日
    瀏覽(17)
  • STM-32:ADC模數(shù)轉(zhuǎn)換器—ADC單通道轉(zhuǎn)換/ADC多通道轉(zhuǎn)換

    STM-32:ADC模數(shù)轉(zhuǎn)換器—ADC單通道轉(zhuǎn)換/ADC多通道轉(zhuǎn)換

    ADC(Analog-Digital Converter),意即模擬-數(shù)字轉(zhuǎn)換器,簡(jiǎn)稱模數(shù)轉(zhuǎn)換器。ADC可以將引腳上連續(xù)變化的模擬電壓轉(zhuǎn)換為內(nèi)存中存儲(chǔ)的數(shù)字變量,建立模擬電路到數(shù)字電路的橋梁。與ADC相對(duì)應(yīng),從數(shù)字電路到模擬電路的橋梁即DAC(Digital-Analog Convertor),數(shù)模轉(zhuǎn)換器。 DAC不是唯一可以

    2024年02月09日
    瀏覽(23)
  • 超詳細(xì)?。TM32-ADC模數(shù)轉(zhuǎn)換器-驅(qū)動(dòng)內(nèi)部溫度傳感器

    超詳細(xì)?。TM32-ADC模數(shù)轉(zhuǎn)換器-驅(qū)動(dòng)內(nèi)部溫度傳感器

    ??在STM32微控制器系列中,ADC(Analog-to-Digital Converter)是一個(gè)重要的外設(shè)模塊,它允許微控制器將模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)以進(jìn)行處理。模擬信號(hào)–數(shù)字信號(hào)。 ?? MCU只能處理數(shù)字量(10011001),如果需要MCU區(qū)分模擬輸入信號(hào)時(shí),MCU直接做不了,需要將模擬信號(hào)通過(guò)模數(shù)轉(zhuǎn)換

    2024年02月19日
    瀏覽(26)
  • 基于51單片機(jī) + MQ-3酒精傳感器 + ADC0832模數(shù)轉(zhuǎn)換器 + LCD1602液晶顯示器的酒精檢測(cè)系統(tǒng)

    基于51單片機(jī) + MQ-3酒精傳感器 + ADC0832模數(shù)轉(zhuǎn)換器 + LCD1602液晶顯示器的酒精檢測(cè)系統(tǒng)

    廢話不多說(shuō),直接上東西。本文是基于51單片機(jī)的酒精檢測(cè)系統(tǒng)設(shè)計(jì),用的元器件有:51單片機(jī)、MQ-3酒精傳感器、ADC0832模數(shù)轉(zhuǎn)換器、 LCD1602液晶顯示器、喇叭等元器件。 1、MQ-3 酒精檢測(cè)傳感器,用于檢測(cè)酒精濃度。當(dāng)然采集到的數(shù)據(jù)是模擬的還需要通過(guò)ADC0832模數(shù)轉(zhuǎn)換器將其轉(zhuǎn)

    2024年02月12日
    瀏覽(30)
  • 快速了解A/D(模數(shù)轉(zhuǎn)換器)

    以下是一個(gè)簡(jiǎn)要的概述: A/D轉(zhuǎn)換器是一種電子設(shè)備 ,用于將模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)。它將連續(xù)變化的模擬信號(hào)離散化為一系列數(shù)字值,以便于數(shù)字系統(tǒng)的處理和分析。 A/D轉(zhuǎn)換器的原理圖 通常包括模擬輸入電路、采樣保持電路、編碼器、數(shù)字輸出接口等。 了解A/D轉(zhuǎn)換器的

    2024年02月06日
    瀏覽(25)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包