标准库 STM32+EC11编码器+I2C ssd1306多级菜单例程

标准库 STM32+EC11编码器+I2C ssd1306多级菜单例程


  • 📌原创项目来源于:https://github.com/AdamLoong/Embedded_Menu_Simple
  • 📍相关功能演示观看:https://space.bilibili.com/74495335

单片机多级菜单v1.2


  • 👉本次采用的是原作者(Adam)《单片机多级菜单框架v1.8》基础上修改适配包含中键按键的EC11编码器。
  • 📍原作者网盘项目共享资料:
https://pan.baidu.com/s/1bZPWCKaiNbb-l1gpAv6QNg?pwd=KYWS
  • ✨原作者分享了多个版本的多级菜单例程。可以根据个人需求进行学习了解。

🛠修改内容

  • 🔨将芯片型号切换为stm32f103vc型号,并将对应的.s 文件进行了替换。
  • 🔨 将原中断引脚GPIOB上的GPIO14 和GPIO12 修改到了GPIOE端口上的GPIO8 和GPIO7上,上和下键切换到了GPIOE端口对应的GPIO13、GPIO15。
  • 🔨 新增中断引脚GPIOA端口上的GPIO10引脚,作为EC11编码器中键,单击作用等同于确认按键,长按等同于返回按键。
  • 🔧新增启用定时器3,用来配合EC11按键长按计时作用。
  • 🔧同时开启了系统滴答定时器中断,创建了同HAL库下的HAL_GetTick()函数。
  • 🔧新增2路led输出引脚:PE5和PB5,一路在系统滴答定时器中断中调用,一路在定时器3更新中断中调用。
  • 🔧 新增引用正点原子资料中的sys.c/h ,方便GPIO引脚的原子操作。
    在这里插入图片描述

📑引脚定义接线说明:

  • 🍁编码器接线图参考:
    在这里插入图片描述
EC11-M --- PA10(中键)
EC11-A --- PA8(如果方向相反,对调EC11-B接线)
EC11-B --- PA9
  • 🌿 I2C ssd1306 oled
I2C SCL ---- PB8
I2C SDA ---- PB9
  • 🌿按键
PE8 --- 确认键
PE7 --- 	返回键
PE13 --- 下键
PE15 --- 上键

📘功能说明

👉原作者(By:Adam)《单片机多级菜单框架v1.8》项目,基于STM32F1标准库开发,硬件上,应该使用的是360度编码器不带中键的,当然没有编码器也可以使用; 前提是接了对应的按键。在原项目功能基础上增加了EC11编码器的功能。(原项目也可以使用EC11编码器但是没有按键功能)新增的EC11编码按键功能确认键(单击)和返回键(长按)。内部演示功能未做任何修改,只是新增了按键控制功能扩展。
  • 🔑 EC11编码器控制菜单相对丝滑,包含多种显示模式,内包涵2个体验游戏(贪吃蛇和康威生命游戏)。详情可以查看上面的原作者发布的视频,进行了解。

⛳功能实现说明

  • 🌿360度编码器功能实现是利用定时器1的编码器功能,来读取编码器旋转信息的。
  • 🌿按键读取,通过外部中断实现。
  • 🌿I2C ssd1306 OLED显示,使用软件I2C通讯。

📚程序源码

  • 🔖代码内容较多这里不做展示。
链接:https://pan.baidu.com/s/14ikoJMTAj6qxNFu4xZn51w?pwd=vyq7 
提取码:vyq7

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/252860.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

配置Jenkins自动构建打包项目

转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。 需求说明 1、给A项目配置jenkins每2小时无条件自动构建一次,无论是否有代码提交。 2、给B项目配置jenkins每15分钟检…

论文阅读-通过云特征增强的深度学习预测云工作负载转折点

论文名称:Cloud Workload Turning Points Prediction via Cloud Feature-Enhanced Deep Learning 摘要 云工作负载转折点要么是代表工作负载压力的局部峰值点,要么是代表资源浪费的局部谷值点。预测这些关键点对于向系统管理者发出警告、采取预防措施以…

ubuntu开机报错/dev/nume0n1p2:clean

一、前提 1、当你平时用的图站或者linux系统出现这个问题,首先看看你的显卡有没有换位置。 我的就是项目电脑,同事换了显卡位置,我不知道,当我在这个基础上继续做的时候,出了问题。 2、当你是第一次装显卡&#xff…

[office] 在Excel中怎么给单元格文本创建超链接- #职场发展#笔记

在Excel中怎么给单元格文本创建超链接? 有时候我们想在excel中通过点击提示文字直接打开文件或找到某文件所在位置,这就要用到超链接,那么在Excel中怎么给单元格文本创建超链接?下面小编就为大家详细介绍一下,一起,来看看吧 时…

shell脚本基础语法(.sh ./ sh bash source shell)

Linux 之 Shell 脚本基础语法 0. 学习一门语言的顺序 1. Shell 编程概述 1.1 Shell 名词解释 在 Linux 操作系统中,Shell 是一个命令行解释器,它为用户提供了一个与操作系统内核交互的界面。用户可以通过 Shell 输入命令,然后 Shell 将这些…

gcore服务器设置root账号密码登录

这个厂商很奇怪,默认只能用centos用户与公钥登录,但是这样有时候很麻烦。 他默认开启了SELinux,和强制ssh密钥登录。 下面所有操作在root模式下进行 SELinux设置为兼容模式 setenforce 0vi /etc/selinux/config然后将文件中的SELINUXenfo…

Doris中的本地routineload环境,用于开发回归测试用例

----------------2024-2-6-更新-------------- doris的routineload,就是从kafka中加载数据到表,特点是定时、周期性的从kafka取数据。 要想在本地开发测试routine load相关功能,需要配置kafka环境,尤其是需要增加routine load回…

CodeFuse-VLM 开源,支持多模态多任务预训练/微调

CodeFuse-MFT-VLM 项目地址:https://github.com/codefuse-ai/CodeFuse-MFT-VLM CodeFuse-VLM-14B 模型地址:CodeFuse-VLM-14B CodeFuse-VLM框架简介 随着huggingface开源社区的不断更新,会有更多的vision encoder 和 LLM 底座发布&#x…

I.MX6u嵌入式linux驱动开发

1:Ubuntu 系统入门 当 Ubuntu 系统入门以后,我们重点要学的就是如何在 Linux 下进行 C 语言开发,如何使 用 gcc 编译器、如何编写 Makefile 文件等等 首先安装虚拟机软件VM: Vmware Workstation 软件可以在 Wmeare …

如何使用Python + 百度翻译API 自动大批量免费翻译Excel文件中的外语内容

手里有一个Excel文件,包括了大量的亚马逊德语搜索词(关键词),每个单元格1个,需要翻译为中文。但是文件大小超过了10M,不能使用百度或Google免费的文档功能,如果手工一个个的翻译然后粘贴又太麻烦,于是想到用Python加免费翻译API完成。 一、openpyxl库 用Python编辑处…

洛谷_P1464 Function_python写法

目录 1.错误解法 2.学习记忆化搜索算法 2.1简介 2.2案例学习 3.解法 4.总结 1.错误解法 a 0 b 0 c 0 def w(a,b,c):if a<0 or b<0 or c<0:return 1elif a>20 or b>20 or c>20:return w(20,20,20)elif a<b and b<c:return w(a-1,b,c) w(a-1,…

1、将 ChatGPT 集成到数据科学工作流程中:提示和最佳实践

将 ChatGPT 集成到数据科学工作流程中:提示和最佳实践 希望将 ChatGPT 集成到您的数据科学工作流程中吗?这是一个利用 ChatGPT 进行数据科学的提示的实践。 ChatGPT、其继任者 GPT-4 及其开源替代品非常成功。开发人员和数据科学家都希望提高工作效率,并使用 ChatGPT 来简…

LRU缓存

有人从网络读数据&#xff0c;有人从磁盘读数据&#xff0c;机智的人懂得合理利用缓存加速数据的读取效率&#xff0c;提升程序的性能&#xff0c;搏得上司的赏识&#xff0c;赢得白富美的青睐&#xff0c;进一步走向人生巅峰~ LRU假说 LRU缓存&#xff08;Least Recently Used…

2023 巅峰之作 | AIGC、AGI、GhatGPT、人工智能大语言模型的崛起与挑战

文章目录 01 《ChatGPT 驱动软件开发》内容简介 02 《ChatGPT原理与实战》内容简介 03 《神经网络与深度学习》04 《AIGC重塑教育》内容简介 05 《通用人工智能》目  录 2023年是人工智能大语言模型大爆发的一年&#xff0c;一些概念和英文缩写也在这一年里集中出现&#xff…

12.0 Zookeeper 数据同步流程

在 Zookeeper 中&#xff0c;主要依赖 ZAB 协议来实现分布式数据一致性。 ZAB 协议分为两部分&#xff1a; 消息广播崩溃恢复 消息广播 Zookeeper 使用单一的主进程 Leader 来接收和处理客户端所有事务请求&#xff0c;并采用 ZAB 协议的原子广播协议&#xff0c;将事务请求…

10英寸安卓车载平板电脑丨ONERugged车载工业平板:解决农业工作效率

农业是人类社会的基石之一&#xff0c;而农业工作效率的提升一直是农民和农业专业人士关注的重要议题。随着技术的不断进步&#xff0c;车载工业平板成为了解决农业工作效率的创新解决方案。本文将探讨车载工业平板如何为农业带来巨大的改变&#xff0c;提高农民的工作效率和农…

JavaEE企业级应用软件开发—Spring框架入门学习笔记(一)

一、认识框架 实际开发中&#xff0c;随着业务的发展&#xff0c;软件系统变得越来越复杂&#xff0c;如果所有的软件都从底层功能开始开发&#xff0c;那将是一个漫长而繁琐的过程。此外&#xff0c;团队协作开发时&#xff0c;由于没有统一的调用规范&#xff0c;系统会出现大…

幻兽帕鲁怎么样?好玩? Mac版的玩《幻兽帕鲁》也很简单,只需三个步骤

幻兽帕鲁怎么样 幻兽帕鲁是一款集合了多种游戏元素的游戏&#xff0c;它巧妙地融合了《方舟:生存进化》的野外生存挑战、《荒野之息》的开放世界探索、《魔兽世界》的多元角色互动以及宝可梦的精灵捕捉与培养等经典游戏元素。游戏的核心系统是「帕鲁」捕获&#xff0c;你可以让…

MySQL-存储引擎

文章目录 1. MySQL的体系结构2. 存储引擎2.1 存储引擎概述2.2 存储引擎的类型及选择方案2.3 操作存储引擎2.4 InnoDB存储引擎2.4.1 逻辑存储结构2.4.2 架构2.4.2.1 内存结构2.4.2.2 磁盘结构2.4.2.3 后台线程 2.4.3 事务2.4.3.1 Undo Log&#xff08;原子性&#xff09;2.4.3.2…

C语言其他类型的数组

1.字符数组 概念&#xff1a;专门存放字符的数组&#xff0c;称为字符数组初始化与元素引用&#xff1a; char s1[5] {a, b, c, d, e}; // s1存放的是字符序列&#xff0c;非字符串 char s2[6] {a, b, c, d, e, \0}; // s2存放了一个字符串char s[6] {"abcde&q…