STMCU小助手
发布时间:2022-2-23 19:10
|
前言 某客户在调试 STM32L053 的比较器 1 时,使用内部 1.2V 的参考电压,没有问题.但当使用比较器 2 时,使用同样的设置,却发现比较电压无法调到 1.2V,只能设置到 0.6V 左右,到时是什么问题呢?; h6 D) v) N0 D# a . t X" M% H& R `; }& F8 ~ 问题解决 问题调试1 M' n( p7 \/ D 首先得到这个问题,我们先比较一下两种现象之间的设置问题,发现比较器 1 和比较器 2 的设置都是一样的.然后我们通过修改比较器 2 的内部比较电压查看现象,发现就算我们设置为二分之一的内部参考电压(二分之一的 1.2V),触发门限依旧是 0.6V.即使使用 cubeMx 重新生成代码,现象也没有得到解决.3 c; t1 T/ S0 T3 G( s6 W. m + l4 S9 _- X8 P2 d- T( m! y [. V$ \0 t# q 解决方法$ f( D( d+ x W 然后我们开始查看参考手册,我们猜想,两个比较器之间是否有不一样的设置,以为比较器 2 更为高级,有更多的设置.排除功耗和速度的不一样设置外.我们通过搜寻 comp2 发现其在 Reference control and status register (SYSCFG_CFGR3)里面有个不一样的设置, Bit 0 EN_VREFINT.具体描述如下 : 9 a' F# I' }+ j3 l' r: w) x
K! U% {2 {7 ? 如描述,我们在某些模式下,必须设置这一位.所以我们做以下修改.在使能比较器 2 之前先设置这一位.4 ^2 b2 s7 Y1 U, @6 [; l' H1 F& b( t
在这修改后,比较器 2 的比较电压可以得到正常的电压值,如 1.2V. 7 }5 i7 g4 z: \$ ?6 b 总结 在同一个类型外设中,如果两个外设同样的设置,却得不到同样的效果.我们可以通过查询参考手册对于这两个外设的不同描述,根据不同的描述,找出与现象之间有相关的差异,进行修改与调试.往往可以得到比较好的效果,或者提示.- h$ @2 j) Q4 m# k" ]% L% l d6 Y 1 o' t& k; D" C |
微信公众号
手机版