库函数操作无效,很神奇,求大神解惑

2019-07-20 07:09发布

我用库函数对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); //不加这句时,输出结果为左对齐

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
正点原子
1楼-- · 2019-07-20 12:09
仿真,跟踪进去ADC_Init看代码的设置过程。
zxy543040659
2楼-- · 2019-07-20 17:22
 精彩回答 2  元偷偷看……

一周热门 更多>