STM8L052C6 低功耗+LCD显示 经验分享

本文分享了使用STM8L052C6单片机进行低功耗设计的经验,详细介绍了如何进入halt模式并优化GPIO以降低功耗。同时,文章探讨了内置LCD驱动的使用,包括LCD初始化、配置及显示程序,强调了LCD_RAM寄存器的操作注意事项,并提到了STVD编译器可能存在的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于工作原因,需要做一个低功耗的红外遥控器。于是接触了STM8L这系列低功耗单片机,因为我这个项目要求资源要求不高,所以选了052C6这款。32k flash,2Kbytes的RAM,还有EEPROM。资源很丰富,能满足很多场合的应用了。

这款单片机的低功耗宣称可以小于1uA,不过没什么实际意义,什么都没开的数据。我自己做实验,做一块最小系统版,halt模式下电流为3uA左右。IO口的状态不同,电流相差很大,经过实验发现GPIO_Mode_Out_OD_Low_Slow 模式下功耗最低。实际应用中应该按照IO口外接电路原理分析得到最佳状态。

进入低功耗模式很简单,一句 halt();就解决了。不过根据前人经验来说,最好在执行此语句前先关闭所有用到的外设时钟,设置好所有的中断和IO口状态。对了,halt模式下只能使用外部中断唤醒。halt模式比较简单,多花点时间调下就可以了。不过我在做的过程中也发现了同样的程序有时候功耗降不下来。推测与STVD编译器有关。


接下来说LCD,STM8L052C6这款单片机自带段式LCD驱动,非常方便经济。这个驱动函数刚开始写还真有点懵。仔细读英文的datasheet,加上网上找一些前人的经验贴逐渐明白了,其实还是很有意思的。下图是我的LCD的com和seg的相关参数。

根据上图,我用excel做了下面这张图。有了这张图,编程简单多了。


原因就是STM8L的LCD驱动是通过写LCD_RAM这个寄存器实现的。参考手册介绍如下图:


通过这张图可以清楚的发现LCD的每一个SEG口,COM口都对应着这些寄存器中的一位,只需要置一即可点亮这一段了。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值