9.3.1 ADC的句柄
1.ADC句柄ADC_HandleTypeDef
ADC句柄包含所有配置信息,是所有ADC外设的API函数需要的,ADC_HandleTypeDef定义如下。

2.ADC初始化结构体ADC_InitTypeDef
ADC初始化结构体ADC_InitTypeDef定义如下。

主要语句功能如下。
①DataAlign:可以设置为ADC_DATAALIGN_RIGHT、ADC_DATAALIGN_LEFT。
②ScanConvMode:扫描模式,可以设置为ADC_SCAN_DISABLE、ADC_SCAN_ENABLE。
③ContinuousConvMode:指定在发生选定的触发(软件触发或外部触发)后,是以单一转换模式(一次转换)还是连续转换模式对常规组执行转换,该参数可以设置为ENABLE或DISABLE。
④NbrOfConversion:规则通道数n设置,可以设置为1~16,常和ScanConvMode联合使用。
⑤DiscontinuousConvMode:指定规则组的转换序列是完整序列还是不连续序列,该参数可以设置为ENABLE或DISABLE。
⑥NbrOfDiscConversion:指定不连续转换的次数,数值为1~8。
⑦ExternalTrigConv:触发方式,软件触发为ADC_SOFTWARE_START。
3.规则组ADC通道的结构体ADC_ChannelConfTypeDef
规则组ADC通道的结构体ADC_ChannelConfTypeDef定义如下。

主要语句功能如下。
①Channel:ADC通道设置,可以设置为ADC_CHANNEL_0~ADC_CHANNEL_17。
②Rank:指定规则组序列中的等级,可以设置为1~16,数值为ADC_REGULAR_RANK_1~ADC_REGULAR_RANK_16。
③SamplingTime:设置所选通道的采样时间值,这些时间值可以设置为以下几种。(https://www.daowen.com)
1.5个周期,ADC_SAMPLETIME_1CYCLE_5。
7.5个周期,ADC_SAMPLETIME_7CYCLES_5。
13.5个周期,ADC_SAMPLETIME_13CYCLES_5。
28.5个周期,ADC_SAMPLETIME_28CYCLES_5。
41.5个周期,ADC_SAMPLETIME_41CYCLES_5。
55.5个周期,ADC_SAMPLETIME_55CYCLES_5。
71.5个周期,ADC_SAMPLETIME_71CYCLES_5。
239.5个周期,ADC_SAMPLETIME_239CYCLES_5。
4.中断标志位
ADC的中断有规则组、输入组和模拟看门狗,发生中断后对应的标志位如下。
①规则组转换结束中断标志位:ADC_IT_EOC。
②输入组转换结束中断标志位:ADC_IT_JEOC。
③模拟看门狗转换结束中断标志位:ADC_IT_AWD。
5.ADC转换标志位
ADC转换标志位有规则组、输入组和模拟看门狗,在开始和结束均置位的标志位如下。
①ADC规则组开始标志位:ADC_FLAG_STRT。
②ADC输入组开始标志位:ADC_FLAG_JSTRT。
③ADC规则组转换结束标志位:ADC_FLAG_EOC。
④ADC输入组转换结束标志位:ADC_FLAG_JEOC。
⑤ADC模拟看门狗组转换结束标志位:ADC_FLAG_AWD。
ADC还有模拟看门狗的结构体和其他一些参数,读者可参阅相关数据手册和HAL库文件。