STM32F104ZET6之ucosⅢ下adc

//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),可结果却变成了左对齐:

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

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

posted @ 2019-11-29 17:57  pxysource  阅读(389)  评论(0编辑  收藏  举报