学习了这么多固件库例程,可以发现,标准库函数对每个外设都建立了一个初始化结构体xxx_InitTypeDef(xxx为外设名称)。结构体成员用于设置外设工作参数,并由标准库函数xxx_Init()调用这些设定参数,进入设置外设相应的寄存器,达到配置外设工作环境的目的。一般来说,初始化结构体xxx_InitTypeDef定义在stm32f4xx_xxx.h文件中,初始化函数xxx_Init定义在stm32f4xx_xxx.c文件中。
1.ADC-InitTypeDef结构体
ADC的初始化结构体ADC_InitTypeDef已被定义在stm32f4xx_adc.h文件内。如图8-4所示,结构体包含了ADC的几个重要参数设置,如分辨率、扫描转换模式、连续转换模式、外部触发极性、外部触发选择、转换数据对齐方式与转换通道数量。
图8-4 ADC_InitTypeDef初始化结构体
·ADC_Resolution:配置ADC的分辨率,可选的分辨率有12位、10位、8位和6位。分辨率越高,AD转换数据精度越高,转换时间也越长;分辨率越低,AD转换数据精度越低,转换时间也越短。
·ADC_ScanConvMode:可选参数为ENABLE和DISABLE,配置是否使用扫描。如果是单通道AD转换,使用DISABLE;如果是多通道AD转换,使用ENABLE。
·ADC_ContinuousConvMode:可选参数为ENABLE和DISABLE,配置是启动自动连续转换还是单次转换。使用ENABLE配置为使能自动连续转换;使用DISABLE配置为单次转换。转换一次后即停止,需要手动控制,才重新启动转换。
·ADC_ExternalTrigConvEdge:外部触发极性选择。如果使用外部触发,可以选择触发的极性,可选择禁止触发检测、上升沿触发检测、下降沿触发检测以及上升沿和下降沿均可触发检测。
·ADC_ExternalTrigConv:外部触发选择。图8-2中列举了很多外部触发条件,我们可根据项目需求配置触发来源。如果无须外部触发,一般使用软件自动触发。
·ADC_DataAlign:转换结果数据对齐模式,可选右对齐ADC_DataAlign_Right或者左对齐ADC_DataAlign_Left。一般选择的是右对齐模式。(www.xing528.com)
·ADC_NbrOfConversion:AD转换通道数目。
2.ADC-CommonInitTypeDef结构体
ADC除了有ADC_InitTypeDef初始化结构体外,还有一个ADC_CommonInitTypeDef通用初始化结构体。ADC_CommonInitTypeDef结构体内容决定三个ADC共用的工作环境,比如模式选择、ADC时钟等。ADC_CommonInitTypeDef结构体定义在stm32f4xx_adc.h文件中,如图8-5所示。
图8-5 ADC_CommonInitTypeDef结构体
·ADC_Mode:ADC工作模式选择,有独立模式、双重模式以及三重模式。
·ADC_Prescaler:ADC时钟分频系数选择。ADC时钟由PCLK2分频而来,分频系数决定ADC时钟频率。可选的分频系数为2、4、6和8。注意,ADC最大时钟频率配置为36MHz。
·ADC_DMAAccessMode:DMA模式设置,只有在双重或者三重模式下才需要设置,可以设置三种模式,具体可参考手册说明。
·ADC_TwoSamplingDelay:两个采样阶段之前的延迟,仅适用于双重或三重交错模式。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。