你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
猎★奇士 发表于 2018-2-8 12:00 是这样的,我用过采样模式oversampling mode配置,得到电池电压AD=3470,根据我程序的计算公式得到的是3. ...
Tcreat 发表于 2018-2-8 12:03 晕 3.3V 那就更对了 我用3.6V作为VDD计算得到3.8左右 如果3.3V结果在3.58V 所以没有问题 问题在于你计算 ...
晕 3.3V 那就更对了 我用3.6V作为VDD计算得到3.8左右 如果3.3V结果在3.58V 所以没有问题 问题在于你计算有问题
版主你是对的,非常感谢版主您的帮助!我这是f103计算内部基准电压的计算公式,在f103测完直接就拿过来l0很自信的用,结果是取错公式了
我又看了内部温度传感器取值计算公式,用官方的例程测试了发现没问题,前面我列出来的程序不知道什么问题导致温度计算错了,我是因为没看懂官方代码,结果自己根据公式编的,结果哪里出错了,官方代码如下:
再仔细看看转换计算代码
1.L051 A/D的输入阻抗我记得跟速度是有关系的,速度越慢,输入阻抗越大。我看你分压电阻是兆欧级的,而输入阻抗估计只有50K欧左右,你快速的连续采集必然会使得电压不准;那么你采样的时候,全靠104电容放电维持AD的输入采集。你如果采集多次,每次采集的电压会越来越低。建议你2,3秒最好只采一次,不要连续采很多次取平均值。同理DMA也是行不通的。
关于STM32F1系列,AD的最大输入阻抗在300K欧左右,效果要好点,但依然存在这个问题。
2.关于内部的温度。同样的道理,我记得手册上有提到。切换到测量温度通道后,需要保持一段时间,让电平稳定,然后采集一次就可以了,否则采集的电压依然会越来越低。
更具体的数据,请参考芯片手册了。
启动AD转换之前,校正一下(如果支持校正)。
exp:
HAL_ADCEx_Calibration_Start(&hadc1, ADC_SINGLE_ENDED);