STMCU小助手
发布时间:2022-3-15 21:50
|
使用单片机测量外部电压或者供电电源,一般而言都是采用电阻分压的原理,使用一个ADC引脚采集ADC的数据,然后在根据ADC的分辨率和分压反向计算得到输入电压。2 {, p r6 D4 u3 l% d" w, Y8 F( W 4 w' Y5 w4 {& h, b4 w 读过STM8S003芯片手册的都知道,ADC的分辨率是10位的,也就是最大值是1024,如下图' ?0 y1 F0 `5 |6 r
6 t; k+ D% N; t" p$ f1 @3 T 正常的采集电压需要分压电路和基准电压:
# ~3 x+ b; E) l% A' Z 采集到的ADC数据跟芯片的供电电压有关系。 4 j8 A* H* u& I- B$ N 下面介绍下一种简便的方法: / P9 u5 z* i# c1 @7 ^, L% J# Y( I: [) h 先说下优点:( J, T; J8 p# H# J7 ] 1、省点 ; p f Q+ X4 q* J/ _' C* o 2、没有ADC输入硬件2 }/ g2 |4 t' i9 e+ R J/ b 具体原理:STM8S003芯片内部又多个ADC通道,其中ADC通道7是连接到内部稳压器的,稳压器的电压恒定为1.22V。- H- {( t6 [3 K9 c 6 F R) J. @& p1 T 下面是我通过变化不同的供电电压得到的数据:" b& a; h, b; L8 {. `% s " B0 W0 u1 \" s V! w8 T/ v 供电电压 采集到的ADC数据% `+ f4 i& b5 P0 S 8 }; V5 v5 O5 @/ a* b 3.63V 353 ) t7 [" P0 ~" _: R$ E 4.10V 309+ N. ?3 O. }# P 5.28V 2386 o0 q2 C$ V) ` 通过笔算反推可以知道 q6 D5 |1 n& \ k) o) Y 1.22/363 * 1024 = 344( o! k* K0 \3 g9 u % s: F. [& \ I 1.22/4.1*1024 = 304 1.22/5.28*1024 = 2364 H n& y. m; B7 ^ 其中用万用表测量不妨会有误差,基本上还是比较吻合的。初步确定方法可行。 $ W4 p, T& t/ _3 _, T! _ 那通过以上方法就可以得到反向计算供电电压的方法+ V& k+ V2 `# j% }0 E# y vcc = 1024 * 1.22 / adc_value 9 I$ q. N0 p2 M$ B, C) |$ A0 E; m$ u 底层代码:6 h7 z: q9 d! ^, b& j
应用代码:. P) x' m, h* M
|
【经验分享】STM32语音识别的智能蓝牙音箱(源程序+原理图+PCB+设计说明书+PPT)
想找个ST芯片
[GPIO] 使用新型抽象开始C++嵌入式编程,从GPIO开始
技术手册stm32f1xx中的一个小问题
【经验分享】STM32 HAL库移植FreeModbus详细步骤
【逢7发帖赢大礼】STM32开发之IC门禁卡UID读取方法!
实战经验 | Keil工程使用NEAI库的异常问题
经验分享 | FDCAN数据段波特率增加后发送失败的问题分析
STM32几种流行开发环境的优缺点
好用软件推荐-TouchGFX Designer
微信公众号
手机版