找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4655|回复: 6
收起左侧

STM32通过EC11调节OLED多级菜单程序

  [复制链接]
ID:734163 发表于 2021-12-13 14:29 | 显示全部楼层 |阅读模式
单片机源程序如下:
  1. //                                                        STM32F103C8 + OLED12864 + SPI
  2. //              ----------------------------------------------------------------
  3. //              GND    电源地
  4. //              VCC  接5V或3.3v电源
  5. //              D0   接PA5(SCL)
  6. //              D1   接PA7(SDA)
  7. //              RES  接PB0
  8. //              DC   接PB1
  9. //              CS   接PA4               
  10. //              ----------------------------------------------------------------
  11. #include "delay.h"
  12. #include "sys.h"
  13. #include "oled.h"
  14. //#include "bmp.h"
  15. //#include "key.h"
  16. #include "menu.h"
  17. #include "EX_KEIL_0718.h"

  18. int Level=0,Menu_Page=1;
  19. int sum=0;

  20. int main(void)
  21. {

  22.         delay_init();
  23.         //KEY_Init();
  24.   EX_Init();
  25.         //LED_Init();
  26.         OLED_Init();
  27.         Menu_Display(Menu_Page, Level);
  28.         while (1)
  29.         {
  30.                 //KEY_Func(KEY_Scan());
  31.                 Encoder_EC11_Analyze(Encoder_EC11_Scan( ));
  32.         }
  33. }
复制代码


  1. #include "menu.h"
  2. #include "stm32f10x.h"


  3. void Menu_Content(int Menu_Page)
  4. {
  5.         //一级菜单显示
  6.         switch (Menu_Page)
  7.         {
  8.                 case 1:
  9.                 {
  10.                         OLED_ShowString(0,0,Func1,8);
  11.                         OLED_ShowString(0,1,Func2,8);
  12.                         OLED_ShowString(0,2,Func3,8);
  13.                         OLED_ShowString(0,3,Func4,8);
  14.                         break;
  15.                 }
  16.           //为了区别一屏和二、三屏的区别,设置了大小不同的选项,根据需要自行修改
  17.                 case 2:
  18.                 {
  19.                         OLED_ShowString(0,0,Func5,8);
  20.                         OLED_ShowString(0,2,Func6,8);
  21.                         OLED_ShowString(0,4,Func7,8);
  22.                         OLED_ShowString(0,6,Func8,8);
  23.                         break;
  24.                 }
  25.                 case 3:
  26.                 {
  27.                         OLED_ShowString(0,0,Func9,8);
  28.                         OLED_ShowString(0,2,Func10,8);
  29.                         OLED_ShowString(0,4,Func11,8);
  30.                         OLED_ShowString(0,6,Func12,8);
  31.                         break;
  32.                 }
  33.                 /***********************************
  34.                 添加完功能和页面后,在此添加case以显示
  35.                 ***********************************/
  36.                 default: break;
  37.         }
  38. }


  39. void Menu_Display(int Menu_Page, int Level)
  40. {
  41.         OLED_Clear();
  42.         Menu_Content(Menu_Page);
  43.         OLED_ShowChar(120,Level,'*',8);   //” * “移动距离由Level决定,本实验的12864共有竖8行,若需改动一屏所示的选项数量,需改动Level相关的参数
  44. }
复制代码

Keil代码下载: STM32F103-OLED-Menu-master.7z (272.23 KB, 下载次数: 310)

评分

参与人数 1黑币 +20 收起 理由
admin + 20 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:1000867 发表于 2022-1-28 19:00 | 显示全部楼层
你好,不知道你的EC11电路是什么样的,我的EC11转动的时候一次跳两个值
回复

使用道具 举报

ID:940409 发表于 2022-4-16 13:00 | 显示全部楼层
请问ec11与stm32引脚如何进行连接
回复

使用道具 举报

ID:829223 发表于 2022-9-13 16:54 | 显示全部楼层
2301525法国 发表于 2022-4-16 13:00
请问ec11与stm32引脚如何进行连接

EC11 有两个方向引脚(A和B)加一个开关引脚,分别上拉电阻接到STM32 GPIO端口。
回复

使用道具 举报

ID:706567 发表于 2023-1-6 19:43 | 显示全部楼层
大神! 仰望!  
回复

使用道具 举报

ID:51588 发表于 2023-4-2 11:58 | 显示全部楼层
        好,可以参考学习,
回复

使用道具 举报

ID:105826 发表于 2023-8-7 13:40 | 显示全部楼层
感谢分享,OLED菜单如果使用图形化,用什么工具开发好呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表