|
拿到STM32L073板子有一段时间了。经过几个周末的调试,电子闹钟初稿可以见人了。主要选择的IC清单如下:% `7 A( b: h; n( ^; i4 f0 Q 1、主控芯片: STM32L073 ; 2、液晶主控ST7735:显示屏为128*128的TFT液晶;* p: C* `% n* M9 \, ?1 q 3、外部时钟芯片: 达拉斯的精确时钟 DS3231。 4、其他外部输入、输出及存储IC略。 设计方案: 1、单片机定时通过IIC采集DS3231中的实时时钟数据,然后通过SPI将显示信息送到TFT液晶屏上; 2、时间及闹钟的调整,可以通过串口在线与上位机同步设置时钟及闹铃相关参数;也可以通过按键离线设置时钟及闹铃参数等;& J# W l% T+ R6 d* n4 ] 3、TFT液晶屏上通过GUI实现定制的时钟界面; ! y: J& t. u3 k+ T2 I; s" U 程序代码:4 H/ `2 e& J8 ?3 a8 O: K( N3 @ 主要采用CubeMX生成的代码作为开发基础,以HAL库作为底层开发中间键;6 C+ F; N8 y- t* P$ E 该方案设计中所涉及的IIC、SPI均为STM32 硬件驱动,通过HAL提供的硬件控制寄存器实现;- ]+ a& W' D2 k. g2 c3 \ $ G3 C1 ~8 B* T0 } 方案心得: 基本上打消了对硬件IIC、SPI上存在Bug的传言,通过实际案例验证了此技术可用的可行性。 代码运行稳定性还在待时间验证。 开发环境顺便说一下:采用Eclipse+Ac6的IDE,采用CubeMX生成的HAL底层操作库。在纯Eclipse+Ac6+CubeMX+HAL开发模式下,项目代码生成、移植以及开发调试都很方便。 未来方案演进: 1、可通过串口连接Wifi猫(ESP8266等)芯片与手机/上位机进行时间同步及程序下载等; 2、闹铃声音方面可以改进,可以由目前的脉冲音更换为其他存储格式的和弦音。% j9 _) u# z) ~, l 附件是此电子闹钟的视频初秀;
关于CubeMX的配置、Eclipse环境搭建参考文档:$ u" x9 n* p* a8 s 1 J4 K* V# Y$ I9 _2 w* R 1、NUCLEO-L476RG试验(一)_LED闪闪亮(环境搭建与开发工具介绍)9 } W0 ^" T2 v 2、NUCLEO-L476RG实验心得 (二)_LED闪闪亮续一 (按键、中断) 3、NUCLEO-L476RG试验心得(三)_Eclipse环境配置 9 P9 \/ g) e' e$ Y9 H 8 S" b: L5 K4 B8 t. ?1 r' { 5 P* o# {( A+ s" G$ i# C, L. b8 e* `7 I / F. A/ W# \8 A1 Q$ q |
微信公众号
手机版
6 }2 ~3 t- ~/ \/ k5 }7 h8 s% w: _. o
TFT液晶工作的时候不谈论整体功耗,低功耗只是在非工作阶段明显。。。。