34.ADC基本原理与配置

ADC基本原理与应用

参考资料
正点原子STM32FX开发板
《STM32FX开发指南》-第X章 ADC实验
STM32FXxx官方资料:
《STM32FX中文参考手册》-第X章 模数转换(ADC)

笔记基于正点原子官方视频
视频连接https://www.bilibili.com/video/BV1Wx411d7wT?p=71&spm_id_from=333.1007.top_right_bar_window_history.content.click
如有侵权,联系删除

一、ADC基本原理

1.ADC简介

Analog-to-Digital Converter的缩写。指模/数转换器或者模拟/数字转换器。是指将连续变量的模拟信号转换为离散的数字信号的器件。
典型的模拟数字转换器将模拟信号转换为表示一定比例电压值的数字信号。

2.STM32 ADC特点
  • 可配置12位、10位、8位或6位分辨率
  • 在转换结束、注入转换结束以及发生模拟看门狗或溢出事件时产生中断
  • 单次和连续转换模式
  • 用于自动将通道0转换为通道“n”的扫描模式
  • 数据对齐以保持内置数据一致性
  • 可独立设置各通道采样时间
  • 外部触发器选项,可为规则转换和注入转换配置极性
  • 不连续采样模式
  • 双重/三重模式(具有2个或更多ADC的器件提供)
  • 双重/三重ADC模式下可配置的 DMA数据存储
  • 双重/三重交替模式下可配置的转换间延迟
  • ADC转换类型(参见数据手册)
  • ADC电源要求:全速运行时为2.4V到3.6 V,慢速运行时为1.8 v
  • ADC输入范围:VREF-≤VIN ≤VREF+
  • 规则通道转换期间可产生 DMA请求
3.STM32芯片的ADC控制器数量 和通道数量

在这里插入图片描述

4.STM32系列ADC外部通道和引脚对应关系

在这里插入图片描述

总结(针对正点原子开发板使用芯片): 144脚芯片因为带PF脚,所以多8个通道,为24个外部通道。小于144脚芯片只有16个外部通道。

5.ADC框图

在这里插入图片描述
在这里插入图片描述

6.ADC引脚

在这里插入图片描述

7.ADC测量电压范围

VREF- ≤ VIN ≤ VREF+
通常情况下,VSSA 和 VREF-接GND, VREF+和
VDDA 接 3.3V,则ADC 的输入电压范围为: 0~3.3V。

测量更大范围电压(例如:-N<Vin<+N)
① 先加法:Vin+N之后,测量输入范围为:Vi1=0~2N
② 再乘法:输入范围缩小为0~3.3V。2N/x=3.3,乘法因子x=3.3/2N
③ 最后换算。
或者先乘法,再加法,都是可以的。
① 先乘法:N*x=3.3/2=1.65,x=1.65/N
② 再加法:加上1.65。
③ 最后换算。

1)实现思路1

在这里插入图片描述

2)实现思路2

在这里插入图片描述

8.STM32通道组

① **规则通道组:**相当正常运行的程序。最多16个通道。规则通道和它的转换顺序在ADC_SQRx寄存器中选择,规则组转换的总数应写入ADC_SQR1寄存器的L[3:0]中
② **注入通道组:**相当于中断。最多4个通道。注入组和它的转换顺序在ADC_JSQR寄存器中选择。注入组里转化的总数应写入ADC_JSQR寄存器的L[1:0]中

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

9.ADC触发方式(软件触发、外部触发)
1)ADC软件触发方式:ADC_CR2

位0: ADON:A/D转换器开启/关闭(A/D Converter ON /OFF)
此位由软件置1和清零。
注:0:禁止ADC转换并转至掉电模式
1:使能ADC
**位22 ** JswSTART:开始转换注入通道(Start conversion of injected channels)
转换开始后,软件将该位置1,而硬件将该位清零。
0:复位状态
1:开始转换注入通道
注:该位只能在ADON =1时置1,否则不会启动转换。
位30: swSTART:开始转换常规通道(Start conversion of regular channels)
通过软件将该位置1可开始转换,而硬件会在转换开始后将该位清零。0:复位状态
1:开始转换常规通道
注:该位只能在ADON=1时置1,否则不会启动转换。

2)ADC外部触发方式:规则通道

在这里插入图片描述

3)ADC外部触发方式:注入通道

在这里插入图片描述

4)ADC外部触发极性

在这里插入图片描述

10.ADC中断

在这里插入图片描述

11.ADC时钟配置

在这里插入图片描述

M3:确保ADC时钟不要超过14MHz。可以设置分频系数为4、6、8 。
M4/M7:确保ADC时钟不要超过36MHz。可以设置分频系数为6、8 。

12.ADC分辨率(ADC_CR1)

在这里插入图片描述

13.ADC采样时间

在这里插入图片描述

14.ADC数据对齐方式

在这里插入图片描述
在这里插入图片描述

15.ADC转换结果

规则通道数据寄存器ADC_DR
注入通道数据寄存器ADC_JDRx

16.ADC数据计算方法

如果分辨率为12,采集范围为0~3.3V。
那么ADC转换数据范围为:0~(2^12-1),即0~4095
如果采集的数字量为X,那么输入电压为Y=3.3/(2^12)*X

17.STM32的ADC模式

STM32的ADC的各通道可以单次,连续,扫描或者间断模式执行。

1)单次转换模式

在单次转换模式下,ADC执行一次转换。CONT位为О时,可通过以下方式启动此模式;

  • 将ADC_CR2寄存器中的SWSTART位置1(仅适用于规则通道>
  • 将JSwSTART位置1(适用于注入通道)
  • 外部触发(适用于规则通道或注入通道)

完成所选通道的转换之后:

  • 如果转换了规则通道;

    • 转换数据存储在16位ADC_DR寄存器中
    • EOC(转换结束)标志置1
    • EOCIE位置1时将产生中断
  • 如果转换了注入通道;

    • 转换数据存储在16位ADC_JDR1寄存器中
    • JEOC(注入转换结束)标志置1
    • JEOCIE位置1时将产生中断
      然后,ADC停止。
2)连续转换模式

在连续转换模式下,ADC结束一个转换后立即启动一个新的转换。CONT位为1时,可通过外部触发或将ADC_CR2寄存器中的SWSTRT位置1来启动此模式(仅适用于规则通道)。每次转换之后:

  • 如果转换了规则通道组:
    • 上次转换的数据存储在16位ADC_DR寄存器中
    • EOC(转换结束)标志置1
    • EOCIE位置1时将产生中断
      无法连续转换注入通道。连续模式下唯一的例外情况是,注入通道配置为在规则通道之后自动转换(使用JAUTO位),请参见自动注入一节。
3)扫描模式

此模式用于扫描一组模拟通道。

通过将ADC_CR1寄存器中的SCAN位置1来选择扫描模式。将此位置1后,ADC会扫描在ADC_SQRx寄存器(对于规则通道〉或ADC_JSQR寄存器(对于注入通道)中选择的所有通道。为组中的每个通道都执行一次转换。每次转换结束后,会自动转换该组中的下一个通道。如果将CONT位置1,规则通道转换不会在组中最后一个所选通道处停止,而是再次从第一个所选通道继续转换。

如果将DMA位置1,则在每次规则通道转换之后,均使用直接存储器访问(DMA)控制器将转换自规则通道组的数据(存储在ADC_DR寄存器中)传输到SRAM。

在以下情况下,ADC_SR寄存器中的EOC位置1:
- 如果EOCS位清零,在每个规则组序列转换结束时
- 如果 EOCS位置1,在每个规则通道转换结束时
从注入通道转换的数据始终存储在ADC_JDRx寄存器中。

ADC_CR1控制寄存器1
在这里插入图片描述
在这里插入图片描述

二、ADC相关寄存器

1.ADC_CR1寄存器

在这里插入图片描述

在扫描模式下,由ADC_SQRx或者ADC_JSQRx寄存器选中的通道被转换。如果设置了EOCIE或者JEOCIE为0,在最后一个通道转换完毕后才会产生EOC或者JEOC中断。

2.ADC_CR2寄存器

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.ADC_SMPR1寄存器

在这里插入图片描述

4.ADC_SMPR2寄存器

在这里插入图片描述

5.ADC_SQR1/SQR2/SQR3规则序列寄存器

在这里插入图片描述

6.ADC_JSQR注入系列寄存器

在这里插入图片描述

7.ADC_DR规则通道数据寄存器

在这里插入图片描述

8.ADC_JDR注入通道数据寄存器

在这里插入图片描述

6.ADC_SR状态寄存器

在这里插入图片描述

三、ADC相关HAL库函数

1.HAL库文件

stm32f4xx_hal_adc.c/stm32f4xx_hal_adc.h
位置:工程文件 - HALLIB - stm32f4xx_hal_adc.c/stm32f4xx_hal_adc.h
stm32f4xx_hal_adc_ex.c/stm32f4xx_hal_adc_ex.h
位置:工程文件 - HALLIB - stm32f4xx_hal_adc_ex.c/stm32f4xx_hal_adc_ex.h

2.常用HAL库函数一(通用函数/常规通道)
  • HAL_StatusTypeDef HAL_ADC_Init(ADC_HandleTypeDef* hadc);
    ADC初始化函数,设置ADC的基本参数(如采样时间、分辨率、数据对其方式等)

  • void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc);
    ADC回调函数(弱函数),我们可以根据需要来改写(改写内容:时钟使能IO口的配置等)。

  • HAL_StatusTypeDef HAL_ADC_Start(ADC_HandleTypeDef* hadc);
    开启ADC(软件层面)

  • HAL_StatusTypeDef HAL_ADC_Stop(ADC_HandleTypeDef* hadc);
    关闭ADC(软件层面)

  • HAL_StatusTypeDef HAL_ADC_PollForConversion(ADC_HandleTypeDef* hadc, uint32_t Timeout);
    等待转换结束(判断EOC位是否发出结束指令)

  • HAL_StatusTypeDef HAL_ADC_Start_IT(ADC_HandleTypeDef* hadc);
    启动ADC的同时开启中断

  • HAL_StatusTypeDef HAL_ADC_Stop_IT(ADC_HandleTypeDef* hadc);
    启动ADC的同时关闭中断

  • HAL_StatusTypeDef HAL_ADC_ConfigChannel(ADC_HandleTypeDef* hadc, ADC_ChannelConfTypeDef* sConfig);
    ADC通道配置(规则序列)

  • uint32_t HAL_ADC_GetValue(ADC_HandleTypeDef* hadc);

3.常用HAL库函数二(中断相关)
  • HAL_StatusTypeDef HAL_ADC_Start_IT(ADC_HandleTypeDef* hadc);

  • HAL_StatusTypeDef HAL_ADC_Stop_IT(ADC_HandleTypeDef* hadc);

  • void HAL_ADC_IRQHandler(ADC_HandleTypeDef* hadc);

  • void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc);

  • void HAL_ADC_ConvHalfCpltCallback(ADC_HandleTypeDef* hadc);

  • void HAL_ADC_LevelOutOfWindowCallback(ADC_HandleTypeDef* hadc);

  • void HAL_ADC_ErrorCallback(ADC_HandleTypeDef *hadc);

4.常用HAL库函数三(注入模式/多重模式)
  • HAL_StatusTypeDef HAL_ADCEx_InjectedStart(ADC_HandleTypeDef* hadc);

  • HAL_StatusTypeDef HAL_ADCEx_InjectedStop(ADC_HandleTypeDef* hadc);

  • HAL_StatusTypeDef HAL_ADCEx_InjectedPollForConversion(ADC_HandleTypeDef* hadc, uint32_t Timeout);

  • uint32_t HAL_ADCEx_InjectedGetValue(ADC_HandleTypeDef* hadc, uint32_t InjectedRank);

  • HAL_StatusTypeDef HAL_ADCEx_MultiModeStart_DMA(ADC_HandleTypeDef* hadc, uint32_t* pData, uint32_t Length);

  • HAL_StatusTypeDef HAL_ADCEx_MultiModeStop_DMA(ADC_HandleTypeDef* hadc);

  • uint32_t HAL_ADCEx_MultiModeGetValue(ADC_HandleTypeDef* hadc);

  • hadcHAL_StatusTypeDef HAL_ADCEx_InjectedConfigChannel(ADC_HandleTypeDef* hadc,ADC_InjectionConfTypeDef* sConfigInjected);

  • HAL_StatusTypeDef HAL_ADCEx_MultiModeConfigChannel(ADC_HandleTypeDef* hadc, ADC_MultiModeTypeDef* multimode);

4.ADC初始化函数 HAL_ADC_Init

函数体:HAL_StatusTypeDef HAL_ADC_Init(ADC_HandleTypeDef* hadc);
位置:工程文件 - HALLIB - stm32f4xx_hal_adc.c
在这里插入图片描述
函数体只有一个,时函数体指针,查看定义如下:

typedef struct
{
ADC_TypeDef 								*Instance; 
ADC_InitTypeDef 							Init; 
__IO uint32_t 									NbrOfCurrentConversionRank;
DMA_HandleTypeDef 					*DMA_Handle; 
HAL_LockTypeDef							 Lock; 
__IO HAL_ADC_StateTypeDef 		State; 
__IO uint32_t									 ErrorCode; 
}ADC_HandleTypeDef;

ADC初始化结构体ADC_InitTypeDef定义:

typedef struct
{
	uint32_t ClockPrescaler;				  //预分频系数
	uint32_t Resolution; 					//分辨率:12/10/8/6 
	uint32_t DataAlign; 						// 对齐方式
	uint32_t ScanConvMode;			//扫描模式
	uint32_t EOCSelection; 				//EOC中断
	uint32_t ContinuousConvMode; 	//连续转换模式
	uint32_t DMAContinuousRequests;		//关闭/打开DMA请求
	uint32_t NbrOfConversion; 					//规则序列转换数
	uint32_t DiscontinuousConvMode; 		//不连续采样模式
	uint32_t NbrOfDiscConversion; 				// 不连续采用模式通道数
	uint32_t ExternalTrigConv; 						//触发方式
	uint32_t ExternalTrigConvEdge;				 //触发极性
}ADC_InitTypeDef;
5.ADC规则通道配置函数HAL_ADC_ConfigChannel

函数体:HAL_StatusTypeDef HAL_ADC_ConfigChannel(ADC_HandleTypeDef* hadc, ADC_ChannelConfTypeDef* sConfig)

typedef struct
{
	uint32_t Channel; 			//通道
	uint32_t Rank; 				//序列号
	uint32_t SamplingTime;	//采样时间
	uint32_t Offset; 				// 转换结果偏移量:注入通道
}ADC_ChannelConfTypeDef;
6.开启ADC转换

HAL_ADC_Start(&ADC1_Handler);

7.等待转换完成

HAL_StatusTypeDef HAL_ADC_PollForConversion(ADC_HandleTypeDef* hadc, uint32_t Timeout)

8.获取转换结果(规则通道)

uint32_t HAL_ADC_GetValue(ADC_HandleTypeDef* hadc);

9.正点原子给的adc.c文档(供参考)
#include "adc.h"
#include "delay.h"

ADC_HandleTypeDef ADC1_Handler;//ADC句柄

//初始化ADC
//ch: ADC_channels 
//通道值 0~16取值范围为:ADC_CHANNEL_0~ADC_CHANNEL_16
void MY_ADC_Init(void)
{ 
    ADC1_Handler.Instance=ADC1;
    ADC1_Handler.Init.ClockPrescaler=ADC_CLOCK_SYNC_PCLK_DIV4;   //4分频,ADCCLK=PCLK2/4=90/4=22.5MHZ
    ADC1_Handler.Init.Resolution=ADC_RESOLUTION_12B;             //12位模式
    ADC1_Handler.Init.DataAlign=ADC_DATAALIGN_RIGHT;             //右对齐
    ADC1_Handler.Init.ScanConvMode=DISABLE;                      //非扫描模式
    ADC1_Handler.Init.EOCSelection=DISABLE;                      //关闭EOC中断
    ADC1_Handler.Init.ContinuousConvMode=DISABLE;                //关闭连续转换
    ADC1_Handler.Init.NbrOfConversion=1;                         //1个转换在规则序列中 也就是只转换规则序列1 
    ADC1_Handler.Init.DiscontinuousConvMode=DISABLE;             //禁止不连续采样模式
    ADC1_Handler.Init.NbrOfDiscConversion=0;                     //不连续采样通道数为0
    ADC1_Handler.Init.ExternalTrigConv=ADC_SOFTWARE_START;       //软件触发
    ADC1_Handler.Init.ExternalTrigConvEdge=ADC_EXTERNALTRIGCONVEDGE_NONE;//使用软件触发
    ADC1_Handler.Init.DMAContinuousRequests=DISABLE;             //关闭DMA请求
    HAL_ADC_Init(&ADC1_Handler);                                 //初始化 
}

//ADC底层驱动,引脚配置,时钟使能
//此函数会被HAL_ADC_Init()调用
//hadc:ADC句柄
void HAL_ADC_MspInit(ADC_HandleTypeDef* hadc)
{
    GPIO_InitTypeDef GPIO_Initure;
    __HAL_RCC_ADC1_CLK_ENABLE();            //使能ADC1时钟
    __HAL_RCC_GPIOA_CLK_ENABLE();			//开启GPIOA时钟
	
    GPIO_Initure.Pin=GPIO_PIN_5;            //PA5
    GPIO_Initure.Mode=GPIO_MODE_ANALOG;     //模拟
    GPIO_Initure.Pull=GPIO_NOPULL;          //不带上下拉
    HAL_GPIO_Init(GPIOA,&GPIO_Initure);
}

//获得ADC值
//ch: 通道值 0~16,取值范围为:ADC_CHANNEL_0~ADC_CHANNEL_16
//返回值:转换结果
u16 Get_Adc(u32 ch)   
{
    ADC_ChannelConfTypeDef ADC1_ChanConf;
    
    ADC1_ChanConf.Channel=ch;                                   //通道
    ADC1_ChanConf.Rank=1;                                       //第1个序列,序列1
    ADC1_ChanConf.SamplingTime=ADC_SAMPLETIME_480CYCLES;        //采样时间
    ADC1_ChanConf.Offset=0;                 
    HAL_ADC_ConfigChannel(&ADC1_Handler,&ADC1_ChanConf);        //通道配置
	
    HAL_ADC_Start(&ADC1_Handler);                               //开启ADC
	
    HAL_ADC_PollForConversion(&ADC1_Handler,10);                //轮询转换
 
	return (u16)HAL_ADC_GetValue(&ADC1_Handler);	        //返回最近一次ADC1规则组的转换结果
}
//获取指定通道的转换值,取times次,然后平均 
//times:获取次数
//返回值:通道ch的times次转换结果平均值
u16 Get_Adc_Average(u32 ch,u8 times)
{
	u32 temp_val=0;
	u8 t;
	for(t=0;t<times;t++)
	{
		temp_val+=Get_Adc(ch);
		delay_ms(5);
	}
	return temp_val/times;
} 
YOURUOLI
关注 关注
  • 3
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
ADC和DAC基本原理及特点
07-15
本文主要讲了ADC和DAC基本原理及特点,希望对你的学习有所帮助。
简析比较器的原理及应用
07-14
而且,无论是高速ADC、SAR型ADC还是Sigma-Delta ADC,比较器都是组建集成ADC的内部基本而又关键的模块。 在LM339的数据表中,列出了大量的应用。这基本上可以解释其在过去30年中为何被业界广泛地采用。以下列出...
ADC原理
嵌入式与人工智能
12-29 885
ADC 一、 原理&作用  作用 模拟电压信号转换为数字信号  原理  积分型  逐次比较型  并行比较型 二、 数据手册阅读 阅读《S5PC100_UM_REV104.pdf》如下内容: 章节 目的 10.07 ADC 了解S5PC100芯片的ADC的功能性能及使用方法 三、 名词解释  Resolution 分辨率,每个电压值转换之后的二进制位数,位数越高,精度越高  Differential Linearity Error 微分线性误差,转化出来的每个值,相对于正确值的误差 
STM32+HAL+Proteus】系列学习教程---ADC(查询、中断、DMA模式下的电压采集)
最新发布
面包板扎的专栏
04-25 2181
ADC(Analog to Digital Converter)即模数转换器,用来将模拟信号转换为数字信号。
五,ADC配置
u013168074的博客
07-04 2064
这个作用可以是电池供电的时候电量不断下降的时候监控电池电压。位,所以转换结果我们需要设置左对齐还是右对齐;也就会变,这样就可以反推出准确的供电电压。是单片机经常用到的功能,主要是数模转换。通常设置最低速,速度越慢值越精确;内部参考电压反推出准确的电源电压,的值来计算其他通道的电压值。,在使用前需要先配置通道。六,当电源不稳的时候,通过。参考是出厂校准的值,存放在。的值不变,电源电压会变,第。的值被保存在两个寄存器里。的通道,因为不是每一个。个寄存器存放,分别是。打开电源,启动,然后。
[AutoSar] VADC 模块配置及使用说明(一)
汽车-嵌入式-工作笔记-autosar
09-19 710
[AutoSar] VADC 模块配置及使用说明
STM32f103--ADC配置
weixin_51864506的博客
05-27 3467
2.对于规则通道,选中EXTI线路11或TIM8_TRGO作为外部触发事件,可以分别通过设置ADC1和ADC2的ADC1_ETRGREG_REMAP位和ADC2_ETRGREG_REMAP位实现。注意: 在双ADC模式里,当转换配置成由外部事件触发时,用户必须将其设置成仅触发主ADC,从ADC设置成软件触发,这样可以防止意外的触发从转换。2.在某些双ADC模式中,在完整的ADC1数据寄存器(ADC1_DR)中包含了ADC1和ADC2的规则转换数据。通过设置ADC_CR2寄存器的ADON位可给ADC上电。
STM32开发(14)----CubeMX配置ADC
疯狂飙车的蜗牛的博客
02-25 1万+
本章介绍使用STM32CubeMX对ADC进行配置的方法,ADC的原理、概念和特点,配置各个步骤的功能,并通过单通道,多通道,DMA三种方式实现采集。ADC 即模拟数字转换器,英文详称 Analog-to-digital converter,可以将外部的模拟信号转换为数字信号。以下是datasheet当中的内容,我就做个搬运工,简单翻一下,大家可以配合datasheet学习,这样理解会更加深刻。
STM32ADC详解入门(ADC读取烟雾传感器的值)
Ai1101224的博客
04-26 5608
ADC的性能指标、特性、通道、转换顺序、触发方式、转化时间、转化模式进行详细详解, 还有实验:使用ADC读取烟雾传感器的值,充分掌握ADC都使用。
单片机原理及应用课件:第10章-ADC与DAC.ppt
09-23
单片机原理及应用课件:第10章-ADC与DAC 本章节主要讲解了单片机原理及应用中的ADC(模数转换器)和DAC(数模转换器)的知识点,具体涵盖了同步串行接口ADC和DAC的原理、结构、特性、应用及编程实现等方面。 10.1 ...
IAP15F2K61S2单片机+PCF8591-ADC实验 DAC实验 KEIL例程源码+开发板原理图.zip
04-10
IAP15F2K61S2单片机+PCF8591_ADC实验 DAC实验 KEIL例程源码+开发板原理图: * 实验目的:1.掌握I2C总线通讯基本特点和工作时序 * 2.掌握51单片机模拟I2C总线时序的程序设计方法 * 3.掌握PCF8591 ADC芯片的操作方法 *...
DSP原理及应用PPT学习教案.pptx
10-07
DSP原理及应用PPT学习教案 本教案的主要内容是介绍DSP(Digital Signal Processing,数字信号处理)原理及应用,特别是基于TMS320C2000系列DSP...该教案可以帮助学生或开发者快速了解DSP技术的基本原理和应用领域。
8051单片机架构_封装及原理图
01-27
在1976年时,英特尔首次生产了名称为MCS-48的单片机,即8位单片机。1980年晚些时候,发布了名称为MCS-51的改进版本(也是8位...它们在支持设备配置(例如改进的内存,是否存在ADC或DAC等)方面基本上有所不同。随后,英
STM32CubeMX】5,STM32ADC
CSAPP
06-04 7452
1,初步配置。对于滑动变阻器的电压输出 还有就是printf、scanf的重定向,在uart.c中 int fputc (int ch ,FILE *f) { HAL_UART_Transmit(&amp;huart1,(uint8_t *)&amp;ch,1,0xfff); return ch; } int fgetc(FILE *f) { uint8_t c...
AD9361配置软件的基本配置
qq_37989552的博客
04-24 6040
打开软件后的界面如上图所示,点击Run Project Wizard进入配置软件。 Device:选择器件型号,有AD9361、AD9362、AD9363、AD9365、AD80305选项,具体根据自己需要使用的器件选择即可; Device Rev:是器件版本,这个一般默认即可,不需要特殊设置 Project Profile:这个根据工程的应用通信协议,里面有一些根据通信协议已经定制好的模板,如果没找到,选择Custom自定义即可; Rx Channel:接收信号通道选择,总共有RX Disabled、.
FPGA学习专题-ADC的使用
Anitawen的博客
03-04 1万+
基于ADC128S022的FPGA控制时序分析
STM32F103学习笔记(6.2)——ADC规则_软件触发
qq_42697289的博客
03-20 1413
使用ADC1规则通道,单次、非扫描转换,独立模式,外部触发(软件触发),右对齐。寄存器编程
STM32 :配置IO模式详解(秒懂ADC,USART,DMA,等所有外设IO口配置说明)
qq_45689790的博客
02-09 1万+
在学习嵌入式的过程中,几乎所有的外设功能配置都需要先对 IO 口进行配置,但是面对如此多的外设,具体配置成那种模式,很多人都一直都是死记硬背(关键还记不住)今天我就带大家了解一下,IO口的配置模式。(以STM32F1为例,其他同理) 首先,授人以鱼不如授人以渔,网上的说明再详细,哪能有官方手册上的说明详细?花费大量篇幅讲解各个模式,还不如教大家,怎么查。 首先,以下信息都来源于这个位置: 没错,这就是手册的目录,很多人不习惯看手册,但是答案都在这里面。 一、STM32中IO口可以配置成的模式有哪些? t
STM32Cubemx ADC配置详解
热门推荐
qq_43225938的博客
11-15 4万+
标题STM32Cubemx ADC配置详解 ADC独立模式 所谓独立模式,在一个管脚上只有一个ADC采集该管脚的电压。 ADC双重模式 所谓两重模式,就是ADC1_IN0,ADC2_IN0在同一管脚上,采集的是同一管脚上的电压。 ADC三重模式 所谓三重模式,ADC1_IN0,ADC2_IN0,ADC3_IN0在同一管脚上,采集的是同一管脚上的电压。 Parameter Setti...
stm32adc采集电压原理图
05-02
以下是一种基本的STM32 ADC采集电压的电路连接示意图: ``` +-----------+ | | VREF -| | | | | ADC | | | | | IN1/PA1 -| | | | +-----------+ ``` 其中,VREF是参考电压,可以通过外部电路提供,也可以使用芯片内部提供的参考电压。ADCSTM32芯片内部的模数转换器,可以将电压转换为数字量。IN1/PA1是电压信号输入引脚。需要注意的是,ADC输入引脚的电压范围必须在参考电压范围内,否则会影响测量精度。 在程序中,需要对ADC进行初始化和配置,并进行采样和转换。具体实现方法可以参考STM32的官方文档和示例代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • CAN FD基础 8849
  • CarSim教程(一)- 基本操作 7331
  • 模糊控制基本原理 7214
  • 26.UART串口接收过程与配置 7071
  • 09.GPIO工作原理:寄存器描述和配置方法 5798

最新评论

  • CAN db++(创建DBC文件)学习笔记

    哒哒哒呱呱呱: 我已经解决了

  • CAN db++(创建DBC文件)学习笔记

    m0_69344585: 同一个疑问,蹲

  • 30.定时器中断原理与配置

    不枯萎的小花蕾: 以F429为例,默认调用时钟初始化函数之后: SYSCLK(系统时钟) =180MHz PLL 主时钟 =180MHz AHB 总线时钟(HCLK=SYSCLK/1) =180MHz APB1 总线时钟(PCLK1=HCLK/4) =45MHz APB2 总线时钟(PCLK2=HCLK/2) =90MHz 所以APB1的分频系数=AHB/APB1时钟=4 所以,通用定时器时钟CK_INT=2*45M=90M

  • Matlab拟合工具箱拟合轮胎侧偏刚度

    la_ferrari: 请问使用a1~a12来对曲面拟合,在小侧偏角时候误差较大怎么解决表情包

  • CAN db++(创建DBC文件)学习笔记

    哒哒哒呱呱呱: 大佬,报这个错误如何解决呀A signal with more than 8 (or 16) bits does not lie on a (two-)byte limit.

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • Matlab拟合工具箱拟合轮胎侧偏刚度
  • 汽车线性二自由度动力学方程离散化与LQR控制原理
  • 四轮转向与前轮转向二自由度车辆方程推导与时域分析
2023年4篇
2022年49篇

目录

目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

两个鬼故事木命人起名字好听宝宝起名免费网页6画的起名吉利字女孩用名英文名字起名网免费取名起名带龙字包厢起名网上免费送宝宝起名巨蟹恋活快穿之女配逆袭指南比特币大佬看衰狗狗币给乐器起名字赵东苏菲花都兵王免费阅读宝宝免费起名大全李姓的怎么起名2020鼠年女孩起名大全给玩具起什么名字好呢保险公司分区起名龙年档案电视剧26集免费观看迪迦奥特曼52集超清国语资源女孩子起名带书字姜素拉结婚姓莫男孩起名大全吴磊陈乔恩事件黄姓霸气的男孩起名一个木起名欢乐迪ktv团购想给树木起名什么是拐点瓮都起名少年生前被连续抽血16次?多部门介入两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”淀粉肠小王子日销售额涨超10倍高中生被打伤下体休学 邯郸通报单亲妈妈陷入热恋 14岁儿子报警何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言张家界的山上“长”满了韩国人?男孩8年未见母亲被告知被遗忘中国拥有亿元资产的家庭达13.3万户19岁小伙救下5人后溺亡 多方发声315晚会后胖东来又人满为患了张立群任西安交通大学校长“重生之我在北大当嫡校长”男子被猫抓伤后确诊“猫抓病”测试车高速逃费 小米:已补缴周杰伦一审败诉网易网友洛杉矶偶遇贾玲今日春分倪萍分享减重40斤方法七年后宇文玥被薅头发捞上岸许家印被限制高消费萧美琴窜访捷克 外交部回应联合利华开始重组专访95后高颜值猪保姆胖东来员工每周单休无小长假男子被流浪猫绊倒 投喂者赔24万小米汽车超级工厂正式揭幕黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发当地回应沈阳致3死车祸车主疑毒驾恒大被罚41.75亿到底怎么缴妈妈回应孩子在校撞护栏坠楼外国人感慨凌晨的中国很安全杨倩无缘巴黎奥运校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变王树国卸任西安交大校长 师生送别手机成瘾是影响睡眠质量重要因素国产伟哥去年销售近13亿阿根廷将发行1万与2万面值的纸币兔狲“狲大娘”因病死亡遭遇山火的松茸之乡“开封王婆”爆火:促成四五十对奥巴马现身唐宁街 黑色着装引猜测考生莫言也上北大硕士复试名单了德国打算提及普京时仅用姓名天水麻辣烫把捣辣椒大爷累坏了

两个鬼故事 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化