我用库函数对ADC进行初始化,设置数据为右对齐,结果测试出来的数据大于4096,发现可能是左对齐的结果,然后再结构体初始化之后再使用寄存器将数据设置为右对齐,输出结果才正确,这到底是怎么回事呢?代码如下:
ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;//ADC精度选择12,10,8,6
ADC_InitStructure.ADC_ScanConvMode = DISABLE;//是否是扫描转换模式(用于多通道 ENABLE,单通道 DISABLE)
ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;//是否是连续转换模式(自己在连续不断地进行转换)
ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None;//是否是外部事件触发转换
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;//右对齐
ADC_InitStructure.ADC_NbrOfConversion = 1;
ADC_Init(ADC3, &ADC_InitStructure);
ADC3->CR2&=~(1<<11); //不加这句时,输出结果为左对齐
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>