STM32L151在调试ADC过程中通道1数值不准确问题

一、问题描述

在使用STM32L151单片机多个通道进行数据采集时,其余通道数据全部正确,仅PA1引脚1通道数据不正常、下图将ADC初始化放在上面则通道1采集数据不正常、将ADC初始化放在最下面进行初始化时所有通道数据正常、中间的三个初始化为涉及到ADC以及PA1部分。
在这里插入图片描述

二、正常时与不正常时ADC寄存器配置对比

在这里插入图片描述
正常时寄存器数据↑

不正常时寄存器数据
不常时寄存器数据↑

三、问题发现与解决

问题发现:由此得到两个寄存器CR2处有区别,通过仿真发现不正常时ADC_InitStructure.ADC_ExternalTrigConv未进行配置、则执行到ADC_Init时数值自动变成0X14,导致CR2寄存器数值变成0X15,从而引起通道1采集数据不正常。
解决方法:给ADC_InitStructure.ADC_ExternalTrigConv赋值为0,或将ADC_InitStructure结构体进行初始化赋值为0,即可解决问题。
在这里插入图片描述
下图为CR2寄存器对应0X15的寄存器说明、正确配置应配置为0X01。
在这里插入图片描述

大家有不同意见欢迎踊跃探讨

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值