ADC固件驱动程序(HAL库)

 本文是对STM32 HAL库中 ADC 结构体的总结,内容来自《UM1725 User Manual Description of STM32F4xx HAL drivers 》,该文档可在ST官网查询下载。

ADC_HandleTypeDef 结构体

ADC_TypeDef                      *Instance;         /* ADC 寄存器基地址 */

ADC_InitTypeDef                  Init;                  /* ADC 所需参数 */

__IO uint32_t        NbrOfCurrentConversionRank;        /* 当前转换等级的 ADC 数 */ DMA_HandleTypeDef         *DMA_Handle;                   /* DMA 结构体指针 */

HAL_LockTypeDef               Lock;                                 /* ADC 锁定对象 */

__IO uint32_t                       State;                                /* ADC 工作状态 */

__IO uint32_t                       ErrorCode;                        /* ADC 错误代码 */

ADC_InitTypeDef  结构体

uint32_t   ClockPrescaler;                 /* 设置预分频系数,即 PRESC[3:0]位 */

uint32_t   Resolution;                        /* 配置 ADC 的分辨率 */

uint32_t   DataAlign;                         /* 配置 ADC 的对齐方式 */

uint32_t   ScanConvMode;               /* 扫描模式 */

uint32_t   EOCSelection;                  /* 转换完成标志位 */

uint32_t   ContinuousConvMode;     /* 开启连续转换模式否则就是单次转换模式 */

uint32_t   DMAContinuousRequests;                 /* DMA 转换请求模式*/

uint32_t   NbrOfConversion;                              /* 设置转换通道数目 */

uint32_t   DiscontinuousConvMode;                 /* 单次转换模式选择 */

uint32_t   NbrOfDiscConversion;                      /* 单次转换通道的数目 */

uint32_t   ExternalTrigConvEdge;                    /* ADC 外部触发极性*/

uint32_t   ExternalTrigConv;                            /* ADC 外部触发源选择 */

 下面对 ADC_InitTypeDef 结构体中的各个成员进行详细介绍(内容来自用户手册):

ClockPrescaler,选择ADC的时钟频率,这个时钟适用所有ADC。参数可选:ADC_CLOCKPRESCALER_PCLK_DIV2、ADC_CLOCKPRESCALER_PCLK_DIV4、ADC_CLOCKPRESCALER_PCLK_DIV6、ADC_CLOCKPRESCALER_PCLK_DIV8,即2、4、6、8分频。

Resolution,配置ADC的分辨率。参数可选:ADC_RESOLUTION12b、ADC_RESOLUTION10b、ADC_RESOLUTION8b、ADC_RESOLUTION6b,即12位、10位、8位、6位。

DataAlign,指定ADC的数据对齐是左对齐还是右对齐。参数可选:ADC_DATAALIGN_RIGHT、ADC_DATAALIGN_LEFT。

ScanConvMode,指定是否执行扫描(多通道)模式转换或者单次(单通道)模式转换。参数可选:ENABLE 或 DISABLE。(若使用单通道单次转换则选择 DISABLE)

EOCSelection,指定是否设置EOC标志,在单通道转换完成后或者在全部转换完成后。参数可选:EOC_SINGLE_CONV、EOC_SEQ_CONV。

ContinuousConvMode,指定执行转换是连续模式还是单次模式。参数可选:ENABLE 或 DISABLE。(选择 ENABLE 则开启连续转换模式)

DMAContinuousRequests,指定DMA请求是执行连续模式还是单次模式。参数可选:ENABLE 或 DISABLE。(ENABLE 则开启连续模式)

NbrOfConversion,指定ADC常规转换通道的数量。参数可选:1~16。

DiscontinuousConvMode,指定是否执行不连续转换模式。参数可选:ENABLE 或 DISABLE。(选择 ENABLE 则开启不连续转换模式)

NbrOfDiscConversion,指定ADC不连续转换使用常规装换通道的数目。参数可选:1~8。

ExternalTrigConvEdge,选择外部触发边沿并且使能常规组的触发。参数可选:ADC_EXTERNALTRIGCONVEDGE_NONE(禁止触发检测)、ADC_EXTERNALTRIGCONVEDGE_RISING(上升沿触发)、ADC_EXTERNALTRIGCONVEDGE_FALLING(下降沿触发)、ADC_EXTERNALTRIGCONVEDGE_RISINGFALLING(上升沿下降沿均可触发)。

ExternalTrigConv,触发源选择。

ADC_ChannelConfTypeDef 结构体

 uint32_t         Channel

 uint32_t         Rank

 uint32_t         SamplingTime

 uint32_t         Offset

Channel,ADC通道配置。

Rank,常规组发生器的序列。

SamplingTime,所选通道的采样时间。

Offset,保留以供未来使用,可设置为0。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值