[应用相关] 基于STM32的OLED多级菜单GUI实现(简化版智能手表)

[复制链接]
4673|82
 楼主| 鱿鱼丝 发表于 2023-3-27 10:52 | 显示全部楼层
说明2点:

(1)由于是目前本项目是裸机状态下运行的,所以CPU占用率默认是100%的,所以这里使用按键支持连按时,对于菜单的切换更好些。
 楼主| 鱿鱼丝 发表于 2023-3-27 10:52 | 显示全部楼层
(2)可能部分索引号下的执行函数,需要使用到已经定义的3个按键(比如,本项目中的DInogame中)。所以,可以在需要差别化的索引号下去屏蔽原先的按键功能。如下:
 楼主| 鱿鱼丝 发表于 2023-3-27 10:53 | 显示全部楼层
  1.   if((KEY_Scan(1) == 1) && (func_index != 6))        //屏蔽掉索引6下的情况,适配游戏
  2.   {
  3.     func_index=table[func_index].next;        //按键next按下后的索引号
  4.     OLED_Clear();
  5.   }
  6.        
  7.   if((KEY_Scan(1) == 2) && (func_index != 6))        //屏蔽掉索引6下的情况,适配游戏
  8.   {
  9.     func_index=table[func_index].enter;        //按键enter按下后的索引号
  10.     OLED_Clear();
  11.   }
 楼主| 鱿鱼丝 发表于 2023-3-27 10:53 | 显示全部楼层
(3)笔者这里是使用全屏刷新去切换功能界面,同时,没有启用高级算法去加速显示,所以可能在切换界面的时候效果一般。读者朋友可以试试根据自己的UI情况使用局部刷新,这样可能项目会更加丝滑一点。
 楼主| 鱿鱼丝 发表于 2023-3-27 10:53 | 显示全部楼层
本项目中的菜单索引图:
 楼主| 鱿鱼丝 发表于 2023-3-27 10:53 | 显示全部楼层
 楼主| 鱿鱼丝 发表于 2023-3-27 10:53 | 显示全部楼层
三、此项目内部功能实现(简化智能手表)
3.1 OLED显示

        OLED就是正常的驱动与显示,有能力的读者朋友可以使用高级算法去加速OLED屏幕的刷新率,可以使自己的多级菜单切换起来更丝滑。
 楼主| 鱿鱼丝 发表于 2023-3-27 10:54 | 显示全部楼层
唯一需要注意的点就是需要去制作菜单里面的UI图标(注意图片大小是否合适):
 楼主| 鱿鱼丝 发表于 2023-3-27 10:54 | 显示全部楼层
 楼主| 鱿鱼丝 发表于 2023-3-27 10:54 | 显示全部楼层
如果是黑白图片的话,可以直接使用PCtoLCD2002完美版进行取模:
2033364210559c1400.png
 楼主| 鱿鱼丝 发表于 2023-3-27 10:54 | 显示全部楼层
3.2 KEY按键

        KEY按键注意消抖(建议裸机情况下支持连续按动),同时注意自己实际硬件情况去进行编程(电阻是否存在上拉或者下拉)
811136421057f0fe8b.png
 楼主| 鱿鱼丝 发表于 2023-3-27 11:04 | 显示全部楼层
3.3 DinoGame实现

67686642107c52d65c.png
 楼主| 鱿鱼丝 发表于 2023-3-27 11:04 | 显示全部楼层
   谷歌公司最近比较流行的小游戏,笔者之前有文章进行了STM32的成功复刻。
 楼主| 鱿鱼丝 发表于 2023-3-27 11:05 | 显示全部楼层
3.4 LED控制和DHT11模块

        LED和DHT11模块其实都属于外设控制,这里读者朋友可以根据自己的实际情况去取舍。需要注意的是尽可能适配一下自己多级菜单(外设控制也需要注意一下按键安排,可以参考笔者项目的设计)。
 楼主| 鱿鱼丝 发表于 2023-3-27 11:05 | 显示全部楼层
四、CubeMX配置

1、RCC配置外部高速晶振(精度更高)——HSE;
 楼主| 鱿鱼丝 发表于 2023-3-27 11:05 | 显示全部楼层
 楼主| 鱿鱼丝 发表于 2023-3-27 11:06 | 显示全部楼层
2、SYS配置:Debug设置成Serial Wire(否则可能导致芯片自锁);

80736642108270303f.png
 楼主| 鱿鱼丝 发表于 2023-3-27 11:06 | 显示全部楼层
3、I2C2配置:这里不直接使用CubeMX的I2C2,使用GPIO模拟(PB10:CLK;PB11:SDA)
 楼主| 鱿鱼丝 发表于 2023-3-27 11:06 | 显示全部楼层
 楼主| 鱿鱼丝 发表于 2023-3-27 11:07 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部