OpenEdv-开源电子网
标题:
STM8L152 ADC1怎么使用内部基准
[打印本页]
作者:
lanxin
时间:
2018-4-9 18:39
标题:
STM8L152 ADC1怎么使用内部基准
我是初学STM8的小白,目前遇到的问题:void ADC1_Init(void)
{
CLK_PeripheralClockConfig (CLK_Peripheral_ADC1,ENABLE); //开启ADC/USART时钟
ADC_VrefintCmd(ENABLE); //使能内部参考电压
ADC_Init (ADC1,ADC_ConversionMode_Single,ADC_Resolution_12Bit,ADC_Prescaler_1);//单次转换,12位,ADC转换时钟1分频
ADC_Cmd(ADC1,ENABLE); //使能ADC1
ADC_ChannelCmd (ADC1,ADC_Channel_0,ENABLE); //使能通道0------PA6
}
unsigned int ADC1_getdata(void)
{
unsigned int adc1_value;
ADC_SoftwareStartConv (ADC1); //开始ADC软件转换
while(!ADC_GetFlagStatus (ADC1,ADC_FLAG_EOC));//等待转换结束
ADC_ClearFlag (ADC1,ADC_FLAG_EOC); //清除对应标志
adc1_value=ADC_GetConversionValue (ADC1); //获取转换值
return adc1_value;
}
这个在初始化使能内部参考电压
ADC_VrefintCmd(ENABLE); //使能内部参考电压
但是在实际使用时这条语句加上和屏蔽掉,对ADC转换的结果没有任何影响,这说明根本就没有使用内部参考电压。
此单片机是32脚的没有独立的vref+脚,此脚跟电源VDD是同一个脚,也就是外部参考电压是电源的3.3V。
请大神指点一下,是不是ADC还有其他地方需要设置一下才可以成功还是这个单片机内部根本就没有内部参考源。
另我想知道,假如是64个脚的单片机有独立的vref+脚,那如果使用内部的参考电压比如1.224V的,那外部引脚vref+和vref-
怎么处理? 跪谢大神,我一共就31分,如果15分不够我再可以给。
作者:
世吉
时间:
2018-4-9 23:12
我也遇到同样问题,就大神指点!
作者:
正点原子
时间:
2018-4-11 01:50
帮顶
作者:
lanxin
时间:
2018-4-11 11:59
正点原子 发表于 2018-4-11 01:50
帮顶
原子哥能不能指点一下!
作者:
ChaserMCU
时间:
2018-4-11 17:34
我现在也在搞这个ADC,正在解决这个问题,做得板子把Vref+这个脚留出来的准备接3.0的参考电压,不知道你那个原因是不是外部引脚Vref+接上VDD或者VDDA造成的呢?我这里这个调试板子就是接到VDD上了,一旦用内部参考,读回来的值和外部参考一样
作者:
s414545584
时间:
2018-6-14 08:59
CLK_PeripheralClockConfig (CLK_Peripheral_ADC1,ENABLE); //开启ADC/USART时钟
ADC_Init (ADC1,ADC_ConversionMode_Single,ADC_Resolution_12Bit,ADC_Prescaler_1);//单次转换,12位,ADC转换时钟1分频
ADC_SoftwareStartConv (ADC1); //开始ADC软件转换
ADC_SamplingTimeConfig(ADC1, ADC_Group_SlowChannels, ADC_SamplingTime_24Cycles);
ADC_VrefintCmd(ENABLE); //使能内部参考电压
ADC_ChannelCmd(ADC1,ADC_Channel_Vrefint,ENABLE);
ADC_Cmd(ADC1,ENABLE);
ADC_SoftwareStartConv (ADC1); //开始ADC软件转换
while(!ADC_GetFlagStatus (ADC1,ADC_FLAG_EOC));//等待转换结束
ADC_ClearFlag (ADC1,ADC_FLAG_EOC); //清除对应标志
adc1_value=ADC_GetConversionValue (ADC1); //获取转换值
顺序不对的话,是不行滴,Good Luck!
欢迎光临 OpenEdv-开源电子网 (http://www.openedv.com:80/)
Powered by Discuz! X3.4