STM32-OLED-系统
前言
这篇文章介绍一下我在大学做的一个东西,基于STM32C8T6做的时钟系统,
代码开源在github上:https://github.com/chasentech/ClockSystem
这个电子表系统的延时视频见我在B站上传的视频(直接点开可能访问不了,可以复制链接,在网页重新打开)
视频连接
https://www.bilibili.com/video/BV1wD4y1d7ax?share_source=copy_web
这篇文章以时间为顺序,介绍一下这个产品的前世今生。
2019年2月中旬 想法
当时是大四的寒假,我在家里刷b站,无意中刷到这一个视频
视频
(https://www.bilibili.com/video/BV1RW41187qe?from=search&seid=2089961479810178490),
看了这个视频很受启发,想着自己也可以做一个类似的东西。一方面自己在大学也经常接触32单片机,另一方面想的是快要毕业了,想做一个成品,可以说是大学毕业的纪念。想到这些,兴致就起来了。
当时还在家里,没有材料,所以就现在网上买了STM32OLED和0.96OLED屏幕。等快递的过程中,我就先想怎么设计这个产品,首先想的是,oled的显示问题,菜单怎么显示,界面面如何切换等等,也还参考了很多山寨机的菜单界面。大概的设计思路就是画好几个图标,通过按键切换不同的功能。快递回来之后,就简单实现了几个图标,如下图
2019年2月下旬 调试界面
到学校之后,就开始整整开始做了,经过好几次的实验,自己画图标,最后确定了几个图标,如下图,加上了界面切换的功能,
2019年2月下旬 调试贪吃蛇游戏
贪吃蛇游戏算是比较经典的游戏了,我也想着在我的产品上用上。以前我用过C写过基于终端界面的贪吃蛇,用Qt写过带界面的贪吃蛇,在oled上实现应该是算是比较简单的了,也没有花多久的功夫,就实现了。调试过程可以见下面的图片
2019年3月上旬 调试外设
接下来就是一些外设的调试了,我设计这个产品的思路其实是外设不要用太多,主要锻炼一下软件的能力。所以选择的外设其实就下面这几个
- SSD1306 0.96OLED
- DHT11温湿传感器
- 蜂鸣器
- 按键
OLED在之前已经调试好了,接下来就是剩下的了,温度湿度传感器可以按照示例跑起来,蜂鸣器响起来也十分简单,按键就更不用说了。下面是当时调试的一些图片
2019年3月上旬 代码整合
一个一个模块调好之后,就需要把代码合到一起了。整合的难度主要在软件这一方面,包括不同模式的切换(待机模式,菜单模式,功能显示模式),写这一部分也耗费了很多时间,最终大体上完成了。
2019年3月中旬 焊板子
最后一部当然就是设计板子了,在调试的时候,一直是接杜邦线的,很不方便。因为自己没有学过画板子,所以就想着用洞洞板设计,我用的是一个软件叫做proteus,当然了,只是在上面设计一下怎么走线。最终的设计的结果,以及焊接好的正反面如图:
当时焊接这个洞洞板还是费了很大劲的,特别是飞线,飞的过程中,稍不留意就会把其他的焊给接上了,不过最终还是完成了,还是很有成就感的。至此,产品的大部分工作是完成了。
2019年3-6月 找工作 毕业
这段时间由于找工作、毕业,这个项目就搁置了起来。
2019年7月 完善
因为工作稳定了下来,所以就想着在完善一下,大概用了两天的时间吧,修复了一些bug,加了一些小功能,比如说息屏显示,当时OLED屏幕的手机都有这个功能,所有就在我的时钟系统中加了。其实我加这个功能是为了防止OLED烧屏,因为OLED是自发光的,一直显示固定字符会烧屏。
这几天的改进之后,这个代码就没有再动过了。
2021年5月
这一段时间,我的时钟系统依旧是完好无损,功能也正常的。
经过两年的工作,关于STM32开发的很多知识点,都忘得差不多了,现在想改一改也觉得有心无力了,那这个产品就这样吧,也挺好的。
现在回想起来觉得,毕业前做这个真的很有意义。到目前为止两年了,还是完好的。我想如果是十年之后,或许它依旧是这样,依旧完好,依旧在我身边。
–2021.05.18 于上海