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

【正點(diǎn)原子STM32連載】第三十三章 單通道ADC采集實(shí)驗(yàn) 摘自【正點(diǎn)原子】APM32E103最小系統(tǒng)板使用指南

這篇具有很好參考價(jià)值的文章主要介紹了【正點(diǎn)原子STM32連載】第三十三章 單通道ADC采集實(shí)驗(yàn) 摘自【正點(diǎn)原子】APM32E103最小系統(tǒng)板使用指南。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1)實(shí)驗(yàn)平臺(tái):正點(diǎn)原子APM32E103最小系統(tǒng)板
2)平臺(tái)購買地址:https://detail.tmall.com/item.htm?id=609294757420
3)全套實(shí)驗(yàn)源碼+手冊+視頻下載地址: http://www.openedv.com/docs/boards/xiaoxitongban

第三十三章 單通道ADC采集實(shí)驗(yàn)

本章介紹使用APM32E103模數(shù)轉(zhuǎn)換器(ADC)進(jìn)行帶通道的電壓采集。通過本章的學(xué)習(xí),讀者將學(xué)習(xí)到單通道ADC的使用。
本章分為如下幾個(gè)小節(jié):
33.1 硬件設(shè)計(jì)
33.2 程序設(shè)計(jì)
33.3 下載驗(yàn)證

33.1 硬件設(shè)計(jì)
33.1.1 例程功能

  1. ADC1采集通道1(PA1)上的電壓,并在LCD上顯示ADC轉(zhuǎn)換后電壓的數(shù)字量和換算后的模擬量
  2. LED0閃爍,指示程序正在運(yùn)行
    33.1.2 硬件資源
  3. LED
    LED0 - PB5
  4. 正點(diǎn)原子 2.8/3.5/4.3/7/10寸TFTLCD模塊(僅限MCU屏,16位8080并口驅(qū)動(dòng))
  5. ADC1
    通道1 - PA1
    33.1.3 原理圖
    本章實(shí)驗(yàn)使用的ADC1為APM32E103的片上資源,因此沒有對(duì)應(yīng)的連接原理圖。
    33.2 程序設(shè)計(jì)
    33.2.1 Geehy標(biāo)準(zhǔn)庫的ADC驅(qū)動(dòng)
    本章實(shí)驗(yàn)將使用ADC1的通道1(PA1引腳)采集外部輸入電壓的模擬量,并將其轉(zhuǎn)換為數(shù)字量,其具體的步驟如下:
    ①:配置ADC
    ②:使能ADC
    ③:配置ADC規(guī)則通道
    ④:啟動(dòng)轉(zhuǎn)換規(guī)則通道
    ⑤:等待規(guī)則通道轉(zhuǎn)換結(jié)束
    ⑥:讀取規(guī)則通道的轉(zhuǎn)換結(jié)果
    在Geehy標(biāo)準(zhǔn)庫中對(duì)應(yīng)的驅(qū)動(dòng)函數(shù)如下:
    ①:配置ADC
    該函數(shù)用于配置ADC的各項(xiàng)參數(shù),其函數(shù)原型如下所示:
    void ADC_Config(ADC_T* adc, ADC_Config_T* adcConfig);
    該函數(shù)的形參描述,如下表所示:
    形參 描述
    adc 指向ADC外設(shè)結(jié)構(gòu)體的指針
    例如:ADC1、ADC2等(在apm32e10x.h文件中有定義)
    adcConfig 指向ADC配置結(jié)構(gòu)體的指針
    需自行定義,并根據(jù)ADC的配置參數(shù)填充結(jié)構(gòu)體中的成員變量
    表33.2.1.1 函數(shù)ADC_Config()形參描述
    該函數(shù)的返回值描述,如下表所示:
    返回值 描述
    無 無
    表33.2.1.2函數(shù)ADC_Config()返回值描述
    該函數(shù)使用ADC_Config_T類型的結(jié)構(gòu)體變量傳入ADC外設(shè)的配置參數(shù),該結(jié)構(gòu)體的定義如下所示:
typedef enum
{
/* 獨(dú)立模式 */
ADC_MODE_INDEPENDENT              = ((uint32_t)0x00000000), 
/* 組合的常規(guī)同時(shí)和注入同時(shí)模式 */
  	ADC_MODE_REG_INJEC_SIMULT		   = ((uint32_t)0x00010000),
/* 組合的常規(guī)同時(shí)和交替觸發(fā)模式 */
ADC_MODE_REG_SIMULT_ALTER_TRIG    = ((uint32_t)0x00020000),
/* 組合注入同時(shí)和快速交織模式 */
ADC_MODE_INJEC_SIMULT_FAST_TNTERL = ((uint32_t)0x00030000),
/* 組合注入同步和慢速交織模式 */
ADC_MODE_INJEC_SIMULT_SLOW_INTERL = ((uint32_t)0x00040000),
/* 注入同時(shí)模式 */
ADC_MODE_INJEC_SIMULT             = ((uint32_t)0x00050000),
/* 常規(guī)同時(shí)模式 */
ADC_MODE_REG_SIMULT               = ((uint32_t)0x00060000),
/* 快速交錯(cuò)模式 */
ADC_MODE_FAST_INTERL              = ((uint32_t)0x00070000),
/* 慢速交錯(cuò)模式 */
ADC_MODE_SLOW_INTERL              = ((uint32_t)0x00080000),
/* 備用觸發(fā)模式 */
    ADC_MODE_ALTER_TRIG               = ((uint32_t)0x00090000) 
} ADC_MODE_T;

typedef enum
{
    ADC_EXT_TRIG_CONV_TMR1_CC1  = ((uint32_t)0x00000000), /* 定時(shí)器1的CC1事件 */
    ADC_EXT_TRIG_CONV_TMR1_CC2  = ((uint32_t)0x00020000), /* 定時(shí)器1的CC2事件 */
ADC_EXT_TRIG_CONV_TMR2_CC2  = ((uint32_t)0x00060000), /* 定時(shí)器2的CC2事件 */
/* 定時(shí)器3的TRGO事件 */
    ADC_EXT_TRIG_CONV_TMR3_TRGO = ((uint32_t)0x00080000),
ADC_EXT_TRIG_CONV_TMR4_CC4  = ((uint32_t)0x000A0000), /* 定時(shí)器4的CC4事件 */
/* EINT線11的TRGO事件 */
    ADC_EXT_TRIG_CONV_EINT11_T8_TRGO  = ((uint32_t)0x000C0000),
    ADC_EXT_TRIG_CONV_TMR1_CC3  = ((uint32_t)0x00040000), /* 定時(shí)器1的CC3事件 */
    ADC_EXT_TRIG_CONV_None      = ((uint32_t)0x000E0000), /* 無事件 */

    ADC_EXT_TRIG_CONV_TMR3_CC1  = ((uint32_t)0x00000000), /* 定時(shí)器3的CC1事件 */
ADC_EXT_TRIG_CONV_TMR2_CC3  = ((uint32_t)0x00020000), /* 定時(shí)器2的CC3事件 */
ADC_EXT_TRIG_CONV_TMR8_CC1  = ((uint32_t)0x00060000), /* 定時(shí)器8的CC1事件 */
/* 定時(shí)器8的TRGO事件 */
    ADC_EXT_TRIG_CONV_TMR8_TRGO = ((uint32_t)0x00080000),
    ADC_EXT_TRIG_CONV_TMR5_CC1  = ((uint32_t)0x000A0000), /* 定時(shí)器5的CC1事件 */
    ADC_EXT_TRIG_CONV_TMR5_CC3  = ((uint32_t)0x000C0000)  /* 定時(shí)器5的CC3事件 */
} ADC_EXT_TRIG_CONV_T;

typedef enum
{
    ADC_DATA_ALIGN_RIGHT = 0x00000000,                    /* 右對(duì)齊 */
    ADC_DATA_ALIGN_LEFT  = 0x00000800                     /* 左對(duì)齊 */
} ADC_DATA_ALIGN_T;


typedef struct
{
    ADC_MODE_T          mode;
    uint8_t             scanConvMode;		/* 掃描模式 */
    uint8_t             continuosConvMode;	/* 連續(xù)轉(zhuǎn)換模式 */
    ADC_EXT_TRIG_CONV_T externalTrigConv;	/* 啟動(dòng)規(guī)則組轉(zhuǎn)換的外部事件 */
    ADC_DATA_ALIGN_T    dataAlign;			/* 數(shù)據(jù)對(duì)齊方式 */
    uint8_t             nbrOfChannel;		/* 規(guī)則通道序列長度 */
} ADC_Config_T;
該函數(shù)的使用示例,如下所示:
#include "apm32e10x.h"
#include "apm32e10x_adc.h"

void example_fun(void)
{
    ADC_Config_T adc_init_struct;
    
    /* 配置ADC1 */
    adc_init_struct.mode = ADC_MODE_INDEPENDENT;
    adc_init_struct.scanConvMode = DISABLE;
    adc_init_struct.continuosConvMode = DISABLE;
    adc_init_struct.externalTrigConv = ADC_EXT_TRIG_CONV_None;
    adc_init_struct.dataAlign = ADC_DATA_ALIGN_RIGHT;
    adc_init_struct.nbrOfChannel = 1;
    ADC_Config(ADC_ADCX, &adc_init_struct);
}

②:使能ADC
該函數(shù)用于使能ADC,其函數(shù)原型如下所示:
void ADC_Enable(ADC_T* adc);
該函數(shù)的形參描述,如下表所示:
形參 描述
adc 指向ADC外設(shè)結(jié)構(gòu)體的指針
例如:ADC1、ADC2等(在apm32e10x.h文件中有定義)
表33.2.1.3 函數(shù)ADC_Enable()形參描述
該函數(shù)的返回值描述如下表所示
返回值 描述
無 無
表33.2.1.4 函數(shù)ADC_Enable()返回值描述
該函數(shù)的使用示例,如下所示:

#include "apm32e10x.h"
#include "apm32e10x_adc.h"

void example_fun(void)
{
    /* 使能ADC1 */
    ADC_Enable(ADC1);
}
③:配置ADC規(guī)則通道
該函數(shù)用于配置ADC規(guī)則通道,其函數(shù)原型如下所示:
void ADC_ConfigRegularChannel(	ADC_T* adc,
    							uint8_t channel,
    							uint8_t rank,
    							uint8_t sampleTime);

該函數(shù)的形參描述,如下表所示:
形參 描述
adc 指向ADC外設(shè)結(jié)構(gòu)體的指針
例如:ADC1、ADC2等(在apm32e10x.h文件中有定義)
channel ADC通道
例如:ADC_CHANNEL_0、ADC_CHANNEL_1等(在apm32e10x_adc.h文件中有定義)
rank 轉(zhuǎn)換順序
sampleTime ADC通道的采樣周期
例如:ADC_SAMPLETIME_3CYCLES
ADC_SAMPLETIME_15CYCLES等(在apm32e10x_adc.h文件中有定義)
表33.2.1.5 函數(shù)ADC_ConfigRegularChannel()形參描述
該函數(shù)的返回值描述,如下表所示:
返回值 描述
無 無
表33.2.1.6 函數(shù)ADC_ConfigRegularChannel()返回值描述
該函數(shù)的使用示例,如下所示:

#include "apm32e10x.h"
#include "apm32e10x_adc.h"

void example_fun(void)
{
    /* 使能ADC1通道1的規(guī)則通道 */
    ADC_ConfigRegularChannel(ADC1, ADC_CHANNEL_1, 1, ADC_SAMPLETIME_480CYCLES);
}

④:啟動(dòng)轉(zhuǎn)換規(guī)則通道
該函數(shù)用于啟動(dòng)轉(zhuǎn)換規(guī)則通道,其函數(shù)原型如下所示:
void ADC_EnableSoftwareStartConv(ADC_T* adc);
該函數(shù)的形參描述,如下表所示:
形參 描述
adc 指向ADC外設(shè)結(jié)構(gòu)體的指針
例如:ADC1、ADC2等(在apm32e10x.h文件中有定義)
表33.2.1.7 函數(shù)ADC_EnableSoftwareStartConv ()形參描述
該函數(shù)的返回值描述,如下表所示:
返回值 描述
無 無
表33.2.1.8 函數(shù)ADC_EnableSoftwareStartConv ()返回值描述
該函數(shù)的使用示例,如下所示:

#include "apm32e10x.h"
#include "apm32e10x_adc.h"

void example_fun(void)
{
    ADC_EnableSoftwareStartConv(ADC1); /* 使能ADC1轉(zhuǎn)換規(guī)則通道 */
}

⑤:讀取ADC狀態(tài)標(biāo)志
該函數(shù)用于讀取ADC的狀態(tài)標(biāo)志,其函數(shù)原型如下所示:
uint8_t ADC_ReadStatusFlag(ADC_T* adc, ADC_FLAG_T flag);
該函數(shù)的形參描述,如下表所示:
形參 描述
adc 指向ADC外設(shè)結(jié)構(gòu)體的指針
例如:ADC1、ADC2等(在apm32e10x.h文件中有定義)
flag 指定的ADC狀態(tài)標(biāo)志
例如:ADC_FLAG_AWD、ADC_FLAG_EOC等(在apm32e10x_adc.h文件中有定義)
表33.2.1.9 函數(shù)ADC_ReadStatusFlag()形參描述
該函數(shù)的返回值描述,如下表所示:
返回值 描述
SET 事件標(biāo)志發(fā)生
RESET 事件標(biāo)志為發(fā)生
表33.2.1.10 函數(shù)ADC_ReadStatusFlag()返回值描述
該函數(shù)的使用示例,如下所示:

#include "apm32e10x.h"
#include "apm32e10x_adc.h"

void example_fun(void)
{
    uint8_t flag;
    
    /* 讀取ADC1的轉(zhuǎn)換結(jié)束標(biāo)志 */
    flag = ADC_ReadStatusFlag(ADC1, ADC_FLAG_EOC)
    if (flag == SET)
    {
    		/* Do something. */
    }
    else
    {
    		/* Do something. */
    }
}

⑥:讀取規(guī)則通道轉(zhuǎn)換結(jié)果
該函數(shù)用于讀取規(guī)則通道的轉(zhuǎn)換結(jié)果,其函數(shù)原型如下所示:
uint16_t ADC_ReadConversionValue(ADC_T* adc);
該函數(shù)的形參描述,如下表所示:
形參 描述
adc 指向ADC外設(shè)結(jié)構(gòu)體的指針
表33.2.1.11 函數(shù)ADC_ReadConversionValue()形參描述
該函數(shù)的返回值描述,如下表所示:
返回值 描述
uint16_t類型數(shù)據(jù) 轉(zhuǎn)換結(jié)果
表33.2.1.12 函數(shù)ADC_ReadConversionValue()返回值描述
該函數(shù)的使用示例,如下所示:

#include "apm32e10x.h"
#include "apm32e10x_adc.h"

void example_fun(void)
{
    uint16_t data;
    
    /* 讀取規(guī)則通道轉(zhuǎn)換結(jié)果 */
    data = ADC_ReadConversionValue(ADC1);
    
    /* Do something. */
}

33.2.2 ADC驅(qū)動(dòng)
本章實(shí)驗(yàn)的ADC驅(qū)動(dòng)主要負(fù)責(zé)向應(yīng)用層提供ADC的初始化和獲取ADC轉(zhuǎn)換結(jié)果的函數(shù)。本章實(shí)驗(yàn)中,ADC的驅(qū)動(dòng)代碼包括adc.c和adc.h兩個(gè)文件。
ADC驅(qū)動(dòng)中,對(duì)ADC、GPIO的相關(guān)宏定義,如下所示:

/* 單通道ADC采集定義 */
#define ADC_ADCX_CHY_GPIO_PORT          GPIOA
#define ADC_ADCX_CHY_GPIO_PIN           GPIO_PIN_1
#define ADC_ADCX_CHY_GPIO_CLK_ENABLE()  do{ RCM_EnableAPB2PeriphClock(RCM_APB2_PERIPH_GPIOA); }while(0)

#define ADC_ADCX                        ADC1
#define ADC_ADCX_CHY                    ADC_CHANNEL_1
#define ADC_ADCX_CHY_CLK_ENABLE()       do{ RCM_EnableAPB2PeriphClock(RCM_APB2_PERIPH_ADC1); }while(0)
ADC驅(qū)動(dòng)中,ADC的初始化函數(shù),如下所示:
/**
 * @brief   初始化ADC
 * @note    公式:TCONV=采樣時(shí)間+12.5個(gè)周期
 *          采樣時(shí)間由 SMPCYCCFGx[2:0]位控制,最小采樣周期為1.5個(gè),當(dāng)
 *          ADCCLK=14MHz,采樣時(shí)間為1.5周期:TCONV=1.5l,周期+12.5,周期=14,周期=1us。
 * @param   無
 * @retval  無
 */
void adc_init(void)
{
    ADC_Config_T adc_init_struct;
    GPIO_Config_T gpio_init_struct;
    
    /* 使能時(shí)鐘 */
ADC_ADCX_CHY_CLK_ENABLE();                          /* 使能ADC時(shí)鐘 */
/* 使能ADC輸入引腳端口時(shí)鐘 */
ADC_ADCX_CHY_GPIO_CLK_ENABLE();                  
/* 設(shè)置ADC分頻因子6,120MHz/6=20MHz,即6分頻得到的ADC輸入時(shí)鐘頻率為20MHz */
    RCM_ConfigADCCLK(RCM_PCLK2_DIV_6);                         
    
    /* 配置ADC引腳 */
    gpio_init_struct.pin = ADC_ADCX_CHY_GPIO_PIN;       /* ADC輸入引腳 */
gpio_init_struct.mode = GPIO_MODE_ANALOG;           /* 模擬輸入 */
/* 配置ADC輸入引腳 */
    GPIO_Config(ADC_ADCX_CHY_GPIO_PORT, &gpio_init_struct);
    
    ADC_Reset(ADC_ADCX);                                /* 復(fù)位ADC1 */
    
    /* 配置ADC */
    adc_init_struct.mode = ADC_MODE_INDEPENDENT;        /* ADC工作模式:獨(dú)立模式 */
    adc_init_struct.scanConvMode = DISABLE;             /* 禁止掃描模式 */
adc_init_struct.continuosConvMode = DISABLE;        /* 單次轉(zhuǎn)換模式 */
/* 禁止觸發(fā)檢測 */
    adc_init_struct.externalTrigConv = ADC_EXT_TRIG_CONV_None; 
    adc_init_struct.dataAlign = ADC_DATA_ALIGN_RIGHT;   /* 配置數(shù)據(jù)對(duì)齊方式 */
    adc_init_struct.nbrOfChannel = 1;                   /* 規(guī)則通道序列長度 */
    ADC_Config(ADC_ADCX, &adc_init_struct);             /* 配置ADC */
    
    ADC_Enable(ADC_ADCX);                               /* 使能ADC */
    ADC_ResetCalibration(ADC_ADCX);                     /* 使能復(fù)位校準(zhǔn) */
    
    while(ADC_ReadResetCalibrationStatus(ADC_ADCX))     /* 等待復(fù)位校準(zhǔn)結(jié)束 */
    {
        ADC_StartCalibration(ADC_ADCX);                 /* 開啟AD校準(zhǔn) */
    }
    
    while(ADC_ReadCalibrationStartFlag(ADC_ADCX));      /* 等待校準(zhǔn)結(jié)束 */
}
從上面的代碼中可以看出,ADC的初始化函數(shù)中,不僅配置了ADC通用控制寄存器和ADC,該配置了ADC1通道1對(duì)應(yīng)的GPIO引腳,同時(shí)也配置了該引腳為模擬模式。
ADC驅(qū)動(dòng)中,獲取ADC轉(zhuǎn)換結(jié)果的函數(shù),如下所示:
/**
 * @brief       獲得ADC轉(zhuǎn)換后的結(jié)果
 * @param       ch: ADC通道,范圍:ADC_CHANNEL_0~ADC_CHANNEL_V_REFINT
 * @retval      無
 */
uint16_t adc_get_result(uint8_t ch)
{
/* 配置指定ADC規(guī)則通道 */
    ADC_ConfigRegularChannel(ADC_ADCX, ch, 1, ADC_SAMPLETIME_239CYCLES5);
    ADC_EnableSoftwareStartConv(ADC_ADCX);             /* 開始轉(zhuǎn)換規(guī)則通道 */
    while(!ADC_ReadStatusFlag(ADC_ADCX, ADC_FLAG_EOC));/* 等待規(guī)則通道轉(zhuǎn)換結(jié)束 */
    return ADC_ReadConversionValue(ADC_ADCX);          /* 返回規(guī)則通道的轉(zhuǎn)換結(jié)果 */
}

/**
 * @brief       獲取通道ch的轉(zhuǎn)換值,取times次,然后平均
 * @param       ch   : ADC通道,范圍:ADC_CHANNEL_0~ADC_CHANNEL_V_REFINT
 * @param       times: 獲取次數(shù)
 * @retval      通道ch的times次轉(zhuǎn)換結(jié)果平均值
 */
uint16_t adc_get_result_average(uint8_t ch, uint8_t times)
{
    uint32_t temp_val = 0;
    uint8_t t;
    
    for (t = 0; t < times; t++)
    {
        temp_val += adc_get_result(ch); /* 獲取times次數(shù)據(jù) */
        delay_ms(5);
    }
    
    return temp_val / times;            /* 返回平均值 */
}

以上兩個(gè)函數(shù)都是用于獲取ADC轉(zhuǎn)換結(jié)果的函數(shù),其中函數(shù)adc_get_result()會(huì)配置并開啟ADC指定通道的規(guī)則通道轉(zhuǎn)換,并等待其轉(zhuǎn)換結(jié)束后,讀取其轉(zhuǎn)換的1次結(jié)果;而函數(shù)adc_get_result_averagr()則是多次調(diào)用啊含糊adc_get_result()獲取多次ADC的轉(zhuǎn)換結(jié)果,然后進(jìn)行均值濾波。
33.2.3 實(shí)驗(yàn)應(yīng)用代碼
本章實(shí)驗(yàn)的應(yīng)用代碼,如下所示:

int main(void)
{
    uint16_t adcdata;
    uint16_t voltage;
    
    NVIC_ConfigPriorityGroup(NVIC_PRIORITY_GROUP_4);  /* 設(shè)置中斷優(yōu)先級(jí)分組為組4 */
    sys_apm32_clock_init(15);                         /* 配置系統(tǒng)時(shí)鐘 */
    delay_init(120);                                  /* 初始化延時(shí)功能 */
    usart_init(115200);                               /* 初始化串口 */
    led_init();                                       /* 初始化LED */
    lcd_init();                                       /* 初始化LCD */
    adc_init();                                       /* 初始化ADC */
    
    lcd_show_string(30, 50, 200, 16, 16, "APM32", RED);
    lcd_show_string(30, 70, 200, 16, 16, "ADC TEST", RED);
    lcd_show_string(30, 90, 200, 16, 16, "ATOM@ALIENTEK", RED);
    lcd_show_string(30, 110, 200, 16, 16, "ADC1_CH1_VAL:", BLUE);
    lcd_show_string(30, 130, 200, 16, 16, "ADC1_CH1_VOL:0.000V", BLUE); 
    
    while (1)
{
/* 獲取ADC通道1轉(zhuǎn)換且進(jìn)行均值濾波后的結(jié)果 */
        adcdata = adc_get_result_average(ADC_ADCX_CHY, 10);
        lcd_show_xnum(134, 110, adcdata, 5, 16, 0, BLUE);/* 顯示原始值 */
/* 計(jì)算實(shí)際電壓值(擴(kuò)大1000倍) */
        voltage = (adcdata * 3300) / 4095;
/* 顯示電壓值的整數(shù)部分 */
        lcd_show_xnum(134, 130, voltage / 1000, 1, 16, 0, BLUE);
/* 顯示電壓值的小數(shù)部分(保留三位小數(shù)) */
        lcd_show_xnum(150, 130, voltage % 1000, 3, 16, 0x80, BLUE);
        
        LED0_TOGGLE();
        delay_ms(100);
    }
}

從上面的代碼中可以看出,在進(jìn)行完包括ADC的所有初始化工作后,便不斷地獲取ADC1通道1進(jìn)行5次轉(zhuǎn)換后經(jīng)過均值濾波后的結(jié)果,并將該原始值顯示在LCD上,同時(shí)還通過該電壓的原始值計(jì)算出了電壓的模擬量,并在LCD上進(jìn)行顯示。
33.3 下載驗(yàn)證
在完成編譯和燒錄操作后,可以看到LCD上實(shí)時(shí)刷新顯示著ADC1通道1(PA1引腳)采集到電壓的數(shù)字量和模擬量,此時(shí)可以通過杜邦線給PA1引腳接入不同的電壓值(注意共地,且輸入電壓不能超過3.3V,否則可能損壞開發(fā)板),可以看到LCD上顯示的電壓數(shù)字量和模擬量也隨之改變。文章來源地址http://www.zghlxwxcb.cn/news/detail-826430.html

到了這里,關(guān)于【正點(diǎn)原子STM32連載】第三十三章 單通道ADC采集實(shí)驗(yàn) 摘自【正點(diǎn)原子】APM32E103最小系統(tǒng)板使用指南的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(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)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包