STM32F104ZET6之ucosⅢ下adc

孤人 提交于 2019-12-06 02:56:45
//5.配置ADC1
    //resolution:分辨率,设置ADC的分辨率为12位
    ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;
    //单通道,多个通道就使能
    ADC_InitStructure.ADC_ScanConvMode = DISABLE;
    //注意,这里没设置外部触发,但是也把值填上,有可能出问题
    //比如:这一行注释掉,明明设置的数据右对齐,结果读出来,变成了左对齐
    ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T1_CC1;
    //不需要外部触发,ADC照样可以工作
    ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None;
    //关闭连续转换模式
    ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;
    //输出结果右对齐存储
    ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
    //告诉ADC有多少个通道需要转换,当前是1个通道
    //branch:分支
    ADC_InitStructure.ADC_NbrOfConversion = 1;
    ADC_Init(ADC1, &ADC_InitStructure);

在配置ADC的时候,由于不需要外部触发,将如下代码注释掉

//ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T1_CC1;

但是,注释掉后,明明设置的数据右对齐(ADC_DataAlign_Right),可结果却变成了左对齐:

将其去掉注释后,恢复正常(右对齐):

总结:
在初始化时,配置结构体,不需要的项,最好也写上值。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!