毕业设计--2020-02-01 奇耘4.2寸墨水屏 程序设计中的一些反思

毕业设计中的墨水屏的方案是使用的奇耘4.2 寸的墨水屏, 在当时的硬件设计时我将 墨水屏和 OLED 12864 设计在了一条总线上,以为他们同样都是 SPI 总线就可以比较方便的进行控制。 在程序的设计上 我设计了 SPI  +DMA 结合的方案来进行屏幕的刷新。(这里我的 OLED 的刷新方案是适用的一次刷新一整个屏幕的方案  ,直接在单片机 (STM32F407)内部新建了一个数组将所有的数据保存在内存中、墨水屏中也是一样)

但是在后来的测试中我发现了一些的问题,问题的具体的现象就是  我的墨水屏在 OLED 刷新的时候 回产生错误,经过我的排查错误的原因是  两个硬件设备对时钟信号空闲电平要求的不同。

墨水屏要求SPI时钟信号在 空闲状态下是低电平    OLED 要求SPI时钟信号在默认状态下是高电平

这是官方手册里面的时序图  硬件设计的时候没有考虑到这回事,结果到了程序设计的时候就得费事了、、、、

我的解决方案是 更换 IO的状态  就是在不同的硬件使用的时候将IO的硬件状态修改(这里墨水屏部分还是采用的 模拟IO 的形式,暂时还没换成硬件SPI)

因为 OLED刷新比较简单  时间较短 所以我把设置相关的函数留在 OLED那边

在OLED 刷新之前 设置成 OLED 模式

使用结束就切换回 EPD  也就是模拟IO模式  暂时就用这个模式, 至于硬件SPI  也考虑过 修改电平极性来解决问题,但是最终还是有问题没解决  最终放弃。  这一次的主要问题就是在于 在进行硬件设计的时候没有去考虑程序的设计方法。 结果就导致 切换起来很麻烦,得不偿失!

发布了35 篇原创文章 · 获赞 30 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_41534481/article/details/104139191
今日推荐