完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
STM32F0芯片通过ad采样压值,始终读不到数据, 检查电路是对的. 设置如下: 我在应用中,添加如下: 1, 电池初始化部分 void BATT_Initial(void) { HAL_ADCEx_Calibration_Start(&hadc); //adc较准 HAL_ADC_Start(&hadc); //轮询模式 } 2,任务中实时不间断地采集电压ad值: u32 GetBattValue(void) { u32 bat=400; //初始化电池ad值的缺省值为400 HAL_ADC_PollForConversion(&hadc, 10); if(HAL_ADC_GetState(&hadc) == HAL_ADC_STATE_REG_EOC) //EOC(EndOfConversion),用来做轮询或中断标记 { bat= HAL_ADC_GetValue(&hadc); } return bat; } 采集到的ad值始终为初始值400, 或根本没有采集到ad值, 反复检查电路, 电路没问题是对的, 问题出在哪里? 盼能得到各位师友指点迷津, 谢谢! |
|
相关推荐
10个回答
|
|
|
|
|
|
帮顶一下
|
|
|
|
|
|
|
|
楼主搜我的帖子,最新的帖子里就用到了ADC,给你拿去参考
|
|
|
|
我按照你的配置,设置的一模一样了, 但结果还是一样, ad值始终是初始值400, 没有采集到实际ad值. 看来问题出在应用部分的ad读取部分, 你的应用部分的ad初始化 和 ad读取能给我参考下吗, 我应用部分这样写的, 不知道问题出在什么地方, 我在应用中,添加如下: 1, 电池初始化部分 void BATT_Initial(void) { HAL_ADCEx_Calibration_Start(&hadc); //adc较准 HAL_ADC_Start(&hadc); //轮询模式 } 2,任务中实时不间断地采集电压ad值: u32 GetBattValue(void) { u32 bat=400; //初始化电池ad值的缺省值为400 HAL_ADC_PollForConversion(&hadc, 10); if(HAL_ADC_GetState(&hadc) == HAL_ADC_STATE_REG_EOC) //EOC(EndOfConversion),用来做轮询或中断标记 { bat= HAL_ADC_GetValue(&hadc); } return bat; } |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
就是,就是。。。 帮助一下,无所谓的。。。。 安臣就是我们的典范人物。。。。 |
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1049 浏览 0 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
1017 浏览 2 评论
2123 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1219 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1639 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 06:52 , Processed in 0.715964 second(s), Total 60, Slave 54 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号