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

stm32L496 ADC 过采样

[复制链接]
cpt121 提问时间:2019-11-14 14:26 /
官方L496 过采样的例程中计算电压的公式    uwInputVoltage = uwConvertedValue * 3300;  uwInputVoltage = uwInputVoltage / 0xFFF0; 计算电压的时候为什么不是除以4096而是除以0xFFF0.  这个FFF0有什么特殊含义吗?
收藏 评论9 发布时间:2019-11-14 14:26

举报

9个回答
00-405686 回答时间:2019-11-15 09:34:37
你把原文截图出来看看
ldptest 回答时间:2019-11-15 13:05:35
原程序连续采样多少次?是否是0xFFF0次?
haocheng996 回答时间:2019-11-15 17:08:48
过采样的原理就是连续多次采样然后把值进行累加,从而达到超过本来12位ADC的分辨率,这时候再求平均值的时候就不是除以4096了
cpt121 回答时间:2019-11-19 13:47:38
00-405686 发表于 2019-11-15 09:34
你把原文截图出来看看

您好,下边是官方例程中的代码。
    if (HAL_ADC_PollForConversion(&AdcHandle, 10) != HAL_OK)
    {
      Error_Handler();
    }
   
    /* Read the converted value */
    uwConvertedValue = HAL_ADC_GetValue(&AdcHandle);

    /* Convert the result from 16 bit value to the voltage dimension (mV unit) */
    /* Vref = 3.3 V */
    uwInputVoltage = uwConvertedValue * 3300;  
    uwInputVoltage = uwInputVoltage / 0xFFF0;
cpt121 回答时间:2019-11-19 13:47:56
ldptest 发表于 2019-11-15 13:05
原程序连续采样多少次?是否是0xFFF0次?

没有,只采样1次
cpt121 回答时间:2019-11-19 13:49:43
haocheng996 发表于 2019-11-15 17:08
过采样的原理就是连续多次采样然后把值进行累加,从而达到超过本来12位ADC的分辨率,这时候再求平均值的时 ...

您好,请问如何计算出的0xFFF0这个数值呢?
00-405686 回答时间:2019-11-19 15:37:37
/* Convert the result from 16 bit value to the voltage dimension (mV unit) */
    /* Vref = 3.3 V */
    uwInputVoltage = uwConvertedValue * 3300;  
    uwInputVoltage = uwInputVoltage / 0xFFF0;

代码注释中有提到,过采样相当于结果已经是16bit了,所以不是除以4095

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

haocheng996 回答时间:2019-11-20 09:21:38
软件上采样了一次,但硬件上已经采样多次了,为什么是0xFFF0这个数值,可以看看参考手册中对ADC硬件过采样的说明

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

butterflyspring 回答时间:2019-11-22 15:29:20
手册中说到了累加之后的值需要除以16,相当于右移4位。也就是除以4095*16得到16位精度的结果

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

所属标签

相似问题

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