OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4009|回复: 6

新人求助!stm32f407的ADC采样值总是固定值

[复制链接]

12

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2018-6-27
在线时间
28 小时
发表于 2018-6-30 11:31:52 | 显示全部楼层 |阅读模式
1金钱
新手求指导!我使用F407的ADC1对电位器采样,5K欧电位器两端分别连vcc3.3和GND,中间的连在PA0上,采集到的值只有0,1023,4095三个,电位器调到300欧以下的时候采样到的是1023偶尔会是0值,大于300欧采集到的值只有4095了,源程序没有使用DMA,用了systick做定时,每300毫秒开始一次转换,直接读取ADC寄存器的采样值,以下贴上源码,求帮助。PA0也没做任何复用。
MCU频率设置成168MHZ,首先
[mw_shl_code=applescript,true]RCC_HCLKConfig(RCC_HCLK_Div1);
RCC_PCLK2Config(RCC_HCLK_Div2);
RCC_PCLK1Config(RCC_HCLK_Div4);
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG | RCC_APB2Periph_ADC1, ENABLE);[/mw_shl_code]
[mw_shl_code=applescript,true]        ADC_CommonInitTypeDef ADC_CommonInitStructure;
        ADC_CommonInitStructure.ADC_Mode = ADC_Mode_Independent;
  ADC_CommonInitStructure.ADC_Prescaler = ADC_Prescaler_Div8;
  ADC_CommonInitStructure.ADC_DMAAccessMode = ADC_DMAAccessMode_Disabled;
  ADC_CommonInitStructure.ADC_TwoSamplingDelay = ADC_TwoSamplingDelay_5Cycles;
  ADC_CommonInit(&ADC_CommonInitStructure);
[/mw_shl_code]
接着
[mw_shl_code=applescript,true]GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_25MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN;
  GPIO_Init(GPIOA, &GPIO_InitStructure);[/mw_shl_code]
获取采样值
[mw_shl_code=applescript,true]        uint16_t value = 0;
        ADC_RegularChannelConfig(ADC_DEVICE, ADC_Channel_0, 1, ADC_SampleTime_15Cycles);
        
        ADC_SoftwareStartConv(ADC1);
        while(ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC ) != SET);
        value = ADC_GetConversionValue(ADC1);
        ADC_ClearFlag(ADC1, ADC_FLAG_EOC );
        return value;[/mw_shl_code]

求大神指点错误!

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
173
金钱
173
注册时间
2018-3-17
在线时间
23 小时
发表于 2018-6-30 21:40:02 | 显示全部楼层
回复

使用道具 举报

12

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2018-6-27
在线时间
28 小时
 楼主| 发表于 2018-7-6 16:28:49 | 显示全部楼层
没有一个人知道么?
回复

使用道具 举报

12

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2018-6-27
在线时间
28 小时
 楼主| 发表于 2018-7-6 16:29:12 | 显示全部楼层
测量GND和ADC引脚电压没问题,扭动电位器,电压变化在0~3.3v内,同时调试发现0V时是1023,大于0V都是4095
回复

使用道具 举报

2

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
184
金钱
184
注册时间
2018-1-26
在线时间
73 小时
发表于 2018-7-6 17:30:19 | 显示全部楼层
连续读取,舍弃前几个数据。
回复

使用道具 举报

12

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2018-6-27
在线时间
28 小时
 楼主| 发表于 2018-7-7 14:09:18 | 显示全部楼层
hexbt 发表于 2018-7-6 17:30
连续读取,舍弃前几个数据。

。。。。。。。
是一直都是1023和4095,边采集边串口输出,几个小时过去了也是一样!
回复

使用道具 举报

12

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2018-6-27
在线时间
28 小时
 楼主| 发表于 2018-7-7 14:10:51 | 显示全部楼层
f103测这个电位器是正确的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-1 02:15

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表