2016 - 2024

感恩一路有你

STM32F407 AD设置为右对齐,结果为左对齐的解决方法

浏览量:3749 时间:2024-07-15 12:49:17 作者:采采

在嵌入式系统中,模拟数字转换(ADC)是一个非常重要的功能。在使用STM32F407单片机时,我们需要进行ADC设置,而一些初学者可能会遇到AD设置为右对齐,但结果却是左对齐的问题。

此类问题的原因一般都是由于没有正确配置ADC结构体参数所致。下面将详细讲解如何正确配置ADC结构体参数以解决该问题。

ADC结构体参数配置

在使用STM32F407单片机时,需要先初始化ADC相关参数。这里以ADC1为例,介绍ADC__DataAlign参数的设置。

ADC__Resolution ADC_Resolution_12b; //12位模式

ADC__ScanConvMode DISABLE; //非扫描模式

ADC__ContinuousConvMode DISABLE; //关闭连续转换

ADC__ExternalTrigConvEdge ADC_ExternalTrigConvEdge_None; //禁止触发检测,使用软件触发

ADC__DataAlign ADC_DataAlign_Right; //右对齐

ADC__NbrOfConversion 1; //1个转换在规则序列中也就是只转换规则序列1

ADC_Init(ADC1, ADC_InitStructure); //ADC初始化

以上是ADC结构体参数配置的基本设置步骤。然而,在实际应用中,有些人可能会遇到AD设置为右对齐,但结果却是左对齐的情况。这是因为上述代码中少设置了一个成员变量ADC__ExternalTrigConv。

解决方法

经过仿真分析,发现ADC__ExternalTrigConv默认值为0x08002d40,因此调用ADC_Init后,ADC_CR2寄存器的值被改变,不是你设置的值。要解决这个问题,只需要加上以下这句话:

ADC__ExternalTrigConv ADC_ExternalTrigConv_T1_CC1;

这句话可以确保ADC__ExternalTrigConv的值是你想要的,从而解决AD设置为右对齐,但结果却是左对齐的问题。

结论

在使用STM32F407单片机进行ADC设置时,建议将ADC结构体所有变量都设置好。如果有哪个变量没有设置,那么初值就不一定是你想要的,最终结果也可能不是你想要的。

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。