完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
各位老师好,我再使用CH582测量电池电压,使用了两个49.9K的电阻分压后接入到ADCIN8,测试时候发现得到的数值大概在3979左右,也就是说测量到引脚的电压大概是 3.1V左右,外部电池电压根据分压原理达到了6.3V左右,这当然是错误的。于是我直接将测量引脚对地短接,测量到电压为0。直接对3.3V短接,测量到电压为3.3V,数值大概在4089左右。说明ADC正常工作的再测量分压,发现数值还是3979左右,也比较稳定, 实测此时我的ADC8引脚电压为2.14V左右,我的ADC初始化很简单如下:
void adc_init(void) { /* 单通道采样:选择adc通道0做采样,对应 PA4引脚, 带数据校准功能 */ GPIOA_ModeCfg(GPIO_Pin_1, GPIO_ModeIN_Floating); ADC_ExtSingleChSampInit(SampleFreq_3_2, ADC_PGA_0); RoughCalib_Value = ADC_DataCalib_Rough(); // 用于计算ADC内部偏差,记录到全局变量 RoughCalib_Value中 ADC_ChannelCfg(8); } 因此我觉得是不是由于MCU的ADC其内阻太大导致的,或者是其他原因我没理解? 请问各位老师,我这个问题该怎么解决?需要减小分压电阻吗?还是其他原因? 再次修改程序,将ADC8的引脚修改为下拉,而不是浮空,数值又发生了改变,此时测量外部实际电压1.1V左右,测量到的数值为2053,换算过来电压值为1.65V左右。 void adc_init(void) { /* 单通道采样:选择adc通道0做采样,对应 PA4引脚, 带数据校准功能 */ GPIOA_ModeCfg(GPIO_Pin_1, GPIO_ModeIN_PD); ADC_ExtSingleChSampInit(SampleFreq_3_2, ADC_PGA_0); RoughCalib_Value = ADC_DataCalib_Rough(); // 用于计算ADC内部偏差,记录到全局变量 RoughCalib_Value中 ADC_ChannelCfg(8); } 再次更新: 大致搞明白了,原来还不跟通用的ADC一样,测量范围很窄,感觉还不是很准确 |
|
相关推荐
1个回答
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
467 浏览 1 评论
CH579M+RT-Thread,RTC从Sleep模式唤醒失败是什么原因?
2871 浏览 2 评论
2359 浏览 1 评论
810浏览 2评论
CH569通过HSPI实现USB3.0和FPGA高速双向通讯
635浏览 1评论
494浏览 1评论
CH32F103C8T6使用当前官网上的CDC例程会出现设备描述符请求失败
358浏览 1评论
632浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-23 00:09 , Processed in 1.022751 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号