STM32F407 AD设置为右对齐,结果为左对齐的原因

2025-10-31 06:08:10

1、以下是按照原子的设置

 

//初始化 ADC1 相关参数

 

 ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;//12位模式

 

 ADC_InitStructure.ADC_ScanConvMode = DISABLE;//非扫描模式

 

 ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;//关闭连续转换

 

 ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None;//禁止触发检测,使用软件触发

 

 ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;//右对齐

 

 ADC_InitStructure.ADC_NbrOfConversion = 1;//1个转换在规则序列中 也就是只转换规则序列1

 

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

设置中少设置了一个成员变量ADC_InitStructure.ADC_ExternalTrigConv

 

仿真发现这个变量的值默认为 0x08002d40, 调用 ADC_Init后,ADC_CR2寄存器的值被改变成不是你设置的值

解决方法是加上 ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T1_CC1; 这句就好了

得到的经验是结构体的所有变量最好都设置,不设置的话,初值不一定是你想要的,结果也可能不是你想要的

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢