拿到STM32L073板子有一段时间了。经过几个周末的调试,电子闹钟初稿可以见人了。主要选择的IC清单如下:; s/ @5 Q9 c: n% Q7 S 1、主控芯片: STM32L073 ;) U$ n, Y3 u: [# O8 b/ f 2、液晶主控ST7735:显示屏为128*128的TFT液晶;0 F6 k5 U2 L) ` T5 \( } W. x 3、外部时钟芯片: 达拉斯的精确时钟 DS3231。 4、其他外部输入、输出及存储IC略。 设计方案: 1、单片机定时通过IIC采集DS3231中的实时时钟数据,然后通过SPI将显示信息送到TFT液晶屏上; 2、时间及闹钟的调整,可以通过串口在线与上位机同步设置时钟及闹铃相关参数;也可以通过按键离线设置时钟及闹铃参数等; 3、TFT液晶屏上通过GUI实现定制的时钟界面; 程序代码:5 i9 F% K0 E. ~/ H9 _4 D 主要采用CubeMX生成的代码作为开发基础,以HAL库作为底层开发中间键; 该方案设计中所涉及的IIC、SPI均为STM32 硬件驱动,通过HAL提供的硬件控制寄存器实现; ( q' z. L+ m" E4 E6 ?" S 方案心得:# p: K, {+ E5 M 基本上打消了对硬件IIC、SPI上存在Bug的传言,通过实际案例验证了此技术可用的可行性。$ ?$ v P# f+ i" L- J+ U% V) q 代码运行稳定性还在待时间验证。 开发环境顺便说一下:采用Eclipse+Ac6的IDE,采用CubeMX生成的HAL底层操作库。在纯Eclipse+Ac6+CubeMX+HAL开发模式下,项目代码生成、移植以及开发调试都很方便。 & ]6 A& N6 y+ o! Y+ L 未来方案演进: 1、可通过串口连接Wifi猫(ESP8266等)芯片与手机/上位机进行时间同步及程序下载等; 2、闹铃声音方面可以改进,可以由目前的脉冲音更换为其他存储格式的和弦音。3 H; Z+ ~ H e6 y: Q' k5 @ : v# J; I2 s2 x, ^2 m1 k 2 o" p6 ?, x; W4 [" e 附件是此电子闹钟的视频初秀; 5 x8 Z# _; C; r 7 J. z4 h; G0 M* K! s8 I. m 关于CubeMX的配置、Eclipse环境搭建参考文档: 1、NUCLEO-L476RG试验(一)_LED闪闪亮(环境搭建与开发工具介绍) 2、NUCLEO-L476RG实验心得 (二)_LED闪闪亮续一 (按键、中断) 3、NUCLEO-L476RG试验心得(三)_Eclipse环境配置6 Y1 U+ S% S l- s; N& ]1 R$ U5 w" u ! F. A' t; [/ P* V2 V L, U3 \0 [2 h. W9 U* @ 2 {! e: }$ _! j. `% m3 \6 R b0 L 4 d7 e3 C* t0 _+ Q+ _, y 4 {: w) S3 t0 l" L: Z5 U1 o 0 l" o7 }: V! B$ _# v/ S |
基于STM32L051使用CubeMX生成工程文件ST系列芯片通用经验分享
基于STM32L051开始添加需要的代码经验分享
STM32L051测试I2C协议设备的添加经验分享
基于STM32L051测试Flash和EEPROM的读写
基于STM32L051串口测试与Enocean模块通讯问题
基于STM32L0的EEPROM读写经验分享
基于STM32L0 ADC使用HAL库关于校准问题经验分享
【工程师笔记】汇总处
【经验之谈】基于STM32L053芯片使用STM32CUBE软件开发低功耗设备的经验分享
在 STM32L0 和 STM32L4 系列微控制器中使用 LPUART 使功耗最小
TFT液晶工作的时候不谈论整体功耗,低功耗只是在非工作阶段明显。。。。