开源单片机多级菜单+OLED动画原理讲解

作者: 加油哦大灰狼分类: 计算机技术 发布时间: 2024-01-01 23:19:21 浏览:25089 次

开源单片机多级菜单+OLED动画原理讲解

嗯哼rr1:
讲的很棒,能详细解释一下显示下标起始的计算Show_i = Catch_i - Cursor_i吗,不太理解

【回复】这个问题问的好。这道式子看着简单,却不容易理解。我也是反推出来的。 核心思路就是不管光标在屏幕上第几行,光标所在那行显示的都要是我选中的选项。(理解这个很重要!!) 这样去反推一下就能明白了。 比如选中下标是7,光标在第三行 (cat_i = 7; cur_i = 2), 在for循环里显示总是从第一行开始往下遍历的,第一行第二行显示什么还不知道。但是我知道第三行肯定要显示我选中的选项。所以 (show_i + 0 = 未知), (show_i + 1 = 未知), (show_i + 2 = 7),... 不难看出其实就是 show_i + cur_i = cat_i; 所以 show_i = cat_i - cur_i;
【回复】回复 @加油哦大灰狼 : 哦哦,感谢
【回复】回复 @Nafxz :啊,这个我开发的时候确实有这个问题,但是我记得已经解决了,你用的是2.0还是1.8
布灵布灵32:
为什么我的菜单切换反色那个没有根据菜单长度变换,都是定长拉满的效果

【回复】啊,刚才检查了一下,把程序里面加动画那两个if(0) 改成if(1)就行,调试的时候忘了改回去了。代码我重新上传[笑哭]
【回复】回复 @加油哦大灰狼 :好的 我试试
那就叫朵拉吧:
为什么我把代码烧进去 无论哪个选项 白条都是最长的呢 就不如你演示那种丝滑 应该在哪里调呢

【回复】啊,刚才检查了一下,把程序里面加动画那两个if(0) 改成if(1)就行,代码我重新上传[笑哭]
【回复】回复 @加油哦大灰狼 :好的好的 这样丝滑就立马有了[doge]
【回复】我也一样 没有根据菜单长度改变
痞子沈梁:
大佬,太牛了,但是我还有一个问题,就是为什么catch_i的初始值是1不是0,还有就是cursor_i的取值范围是0到3,为什么还要加一个cursor_i与max的if比较呢

【回复】catch_i 初始值如果是0,那每次打开菜单显示的第一行就是<<<,设置成1是为了直接显示第一个菜单名。 cursor_i 如果不判断max,那菜单选项少于4个的话, 会选到空白的地方。
TBE小屋:
up为什么我烧录完你分享的文件以后,切换b14电平再tools和tim选项切换,你视频里面下拉的操作没有哇

【回复】回复 @加油哦大灰狼 : 有用有用,不过UP你用的什么编码器,哪个模块呀,就是切换第几行这个功能还没看太明白,但是想先看看效果,就看编码器encoder部分代码还没看太明白
【回复】回复 @TBE小屋 :之前的程序没有动画,现在已经重新上传。
【回复】编码器up你用的是哪个呀
蜡笔小新的毛笔:
retval = Key_GetEvent_Enter + Key_GetEvent_Left; 这个怎么移植呢,Key_GetEvent_Enter是定义的宏吗?

【回复】是宏函数,你用自己的按键函数给他赋值就好了
万德自动化:
数据不能保存啊。退出来又是原始数据了

万德自动化:
设置好返回按键后你返回了,但是不能保存数据啊?

万德自动化:
进入了pwm输出, 进入频率设置freg,设置后没有退出保存选项啊,没有办法退出来

科比布莱恩特_Office:
你好呀,这个代码该怎么移植呀,就复制粘贴所有的menu文件吗

单片机 原理 教程 面向对象 开源 stm32 函数指针 多级菜单 0.96寸OLED 必剪创作

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!