[技术问答] 关于ADC一个提问

[复制链接]
1044|5
 楼主| 戊戌变法 发表于 2019-10-30 18:50 | 显示全部楼层 |阅读模式
ADC, ETC, tcl, tc, se
ADC_SetClockPrescaler(ADC, 4);                 ///<Set ADC Sample Rate 369K = 96M/2/(4+1)/(14+12)
ADC_ChannelSampleTimeSel(ADC, ADC_CHANNEL_AD4, ADC_SampleTime_14Cycle); ///<Set ADC Sample Rate 369K = 96M/2/(4+1)/(14+12)

单片机频率96M   
/2  总线频率
/5  设置分频
/14 每个通道采样时间选择  
然后+12是什么来的   数据手册没看到ADC这里面有+12的说明
 楼主| 戊戌变法 发表于 2019-10-30 21:24 | 显示全部楼层
再问一个问题 跑 ADC例程的时候发现 adc接口 对地时 adc输出为2 不知道哪里有内鬼 让他不是获取的adc = 0
ADC_SAMPLE_TIMER_TRIGER_REGULAR   PA11 直接接地 输出ADC值为2
微信截图_20191030212248.png
 楼主| 戊戌变法 发表于 2019-10-30 21:25 | 显示全部楼层
戊戌变法 发表于 2019-10-30 21:24
再问一个问题 跑 ADC例程的时候发现 adc接口 对地时 adc输出为2 不知道哪里有内鬼 让他不是获取的adc = 0
A ...

adc直接接电源是输出4095正常的
JasonLee27 发表于 2019-10-31 09:21 | 显示全部楼层
戊戌变法 发表于 2019-10-30 21:24
再问一个问题 跑 ADC例程的时候发现 adc接口 对地时 adc输出为2 不知道哪里有内鬼 让他不是获取的adc = 0
A ...

ADC精度问题,所有MCU内部的ADC虽然是12bit,但实际精度一般都达不到真正的12bit
JasonLee27 发表于 2019-10-31 09:21 | 显示全部楼层
手册没有说明,这个是转换时间
AutochipsMCU 发表于 2019-10-31 09:34 | 显示全部楼层
本帖最后由 AutochipsMCU 于 2019-10-31 09:36 编辑

1.+12是转换需要的时钟数,12bit ADC所以需要12个clk
2.对地有一点偏置的原因是默认打开了ADC的校准。
在ADC配置初始化时,可以把校准关掉应该就是0了。
    ADC_LP0Disable(ADC);
    ADC_LP1Disable(ADC);
    ADC_CalibrationDisable(ADC);

Calibration打开是测试绝对电压,关闭是测试相对电源电压
您需要登录后才可以回帖 登录 | 注册

本版积分规则

27

主题

94

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部