一个练手的小项目,想到的能用的传感器就加上去。
用的是野火STM32-MINI-V3助学板(STM32F103VET6)。
寄存器版的驱动。
代码没有特别的优化整理。
- Keil工程:GitHub
实现功能:
1. 通过OLED显示RTC时钟模块时间信息。
2. 通过USART1可以设置时间,格式为“2016 06 04 18 53 55”。
3. 通过USART1可以重置RTC,格式为“r”或者“R”。
4. 按键K1可以切换时间和温湿度显示方式(在关闭OLED屏的情况下会点亮屏幕)。
5. 按键K2可以开启或关闭OLED显示屏。
6. 人体热释电传感器会在检测到人体并且OLED屏处于关闭状态下开启OLED显示屏,若此时按K2则关闭OLED显示屏,否则当检测不到人体时将自动关闭OLED显示屏。
7. 光敏传感器可以根据环境亮度调节OLED屏幕亮度。
8. 电容按键可进入闹钟设置(0-24小时,在关闭OLED屏的情况下会点亮屏幕),为0时关闭闹钟,按第二下确认设置。闹钟响时蜂鸣器发出响声,按一下电容按键关闭闹钟。
尚存在的问题:
1. 人体热释电传感器反应不灵敏。
2. 闹钟只能按小时设置。
3. 闹钟没有重复功能。
4. 进入设置闹钟界面时,未设置超时未设置闹钟自动退出功能。