你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32f030k6 的ADC读出的数据一直是4092。。

[复制链接]
laishipeng 提问时间:2017-6-23 18:59 /
  1. 很是郁闷,试过多种方法,但是不管怎么改,读出来的都是409X的,百思不得其解,求助下,希望坛友给支支招,感激不尽!!
复制代码



<
收藏 评论14 发布时间:2017-6-23 18:59

举报

14个回答
laishipeng 回答时间:2017-6-23 19:01:34
本帖最后由 laishipeng 于 2017-6-23 19:02 编辑


void Adc_Init(void)
{
        GPIO_InitTypeDef GPIO_InitA;
        ADC_InitTypeDef ADC_InitStructure;

        RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);

        ADC_DeInit(ADC1);                                                
  ADC_StructInit(&ADC_InitStructure);
        
        RCC_ADCCLKConfig(RCC_ADCCLK_PCLK_Div2);

        GPIO_InitA.GPIO_Pin=GPIO_Pin_1;//ADCA0_IN0
        GPIO_InitA.GPIO_Mode=GPIO_Mode_AN;
        GPIO_InitA.GPIO_PuPd = GPIO_PuPd_NOPULL;
        GPIO_Init(GPIOA,&GPIO_InitA);
        
        ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;
        ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;      
        ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConvEdge_None;      
        ADC_InitStructure.ADC_ExternalTrigConvEdge=ADC_ExternalTrigConvEdge_None;
        ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;      
        ADC_InitStructure.ADC_ScanDirection = ADC_ScanDirection_Upward;     
        ADC_Init(ADC1, &ADC_InitStructure);      
        
        ADC_ChannelConfig(ADC1,ADC_Channel_1,ADC_SampleTime_239_5Cycles);  
        
        ADC_GetCalibrationFactor(ADC1);  

        ADC_Cmd(ADC1,ENABLE);   
        
}
zhao.zhao 回答时间:2017-6-23 20:27:14
    再在后面加上如下2句指令看看有没有效果
    while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_ADEN)); // 等待ADC准备好
    ADC_StartOfConversion(ADC1);               // 启动转换
xmshao 回答时间:2017-6-23 23:07:33
本帖最后由 xmshao 于 2017-6-23 23:08 编辑

st官方库很多现存代码基本可以直接拿来用。
觉得软件配置无误的话,再检查下硬件,尤其电源,VDDA接了没有?通道是否选择正确?
sfd123-302670 回答时间:2017-6-24 07:48:32
检查检查硬件连接吧
KCL 回答时间:2017-6-24 08:15:27
輸入是高電位,是否空載? 用三用電表對下就知道了
shuolang126 回答时间:2017-6-26 08:59:14
是的,官方例程库,里面有相应的例程,直接就可以用,如果还出错,只能是硬件连接错误!
laishipeng 回答时间:2017-6-26 15:02:25
zhao.zhao 发表于 2017-6-23 20:27
再在后面加上如下2句指令看看有没有效果
    while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_ADEN)); // 等 ...

加上也没用,还是读出409X。
laishipeng 回答时间:2017-6-26 15:04:31
xmshao 发表于 2017-6-23 23:07
st官方库很多现存代码基本可以直接拿来用。
觉得软件配置无误的话,再检查下硬件,尤其电源,VDDA接了没有 ...

测过,硬件上是OK的。。
到主控的那个pin的电源也是正常的,估计是软件配置上有问题,就是找不出哪里问题,,
laishipeng 回答时间:2017-6-26 15:04:50
sfd123-302670 发表于 2017-6-24 07:48
检查检查硬件连接吧

测过,硬件上是OK的。。
到主控的那个pin的电源也是正常的,估计是软件配置上有问题,就是找不出哪里问题,,
12下一页

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版