不管是做单片机还是做嵌入式的,要对一块陌生芯片编程是不可避免的事情, 那首先要做的第一步一定是阅读其datasheet,然而时序对付我们是最常见的了,只有针对时序编程,才有可能确实某些硬件事情。本日我们就来讲讲怎么来编写一个特定的时序来驱动硬件,我们就以STM32的载体了。
这里我们选用了一款基于 ST7567 驱动芯片的 12864 像素 FSTN(格式化超扭曲向列型) 液晶, 当中不集成任何字库, 集成了可独立掌握的琥珀色背光板。之以是选择这样的液晶, 是由于其与目前可穿着设备广泛利用的 OLED(有机发光二极管) 具有相似的掌握事理, 并且价格还比 OLED 便宜很多。

我们的引脚掌握对应关系是:
PB2: 背光开关
PB3: 复位
PB4: A0, 数据或者命令选择, “1” : 写数据, “0” : 写命令
PA5: SCL(时钟端)
PA7: SDA(数据端)
SPI 可以有效地减少数据端口的连接, 便于布板和节约端口资源, 因此我们优先推举。 接下来我们研究一下 LCD 的驱动程序
时序图要研究 LCD 的驱动程序, 首先必须理解其掌握芯片的时序
每次须要发出的时候, 先要拉低 CS, 然后 SDA 发出字节中的最高位的bit,接着 SCLK 进行一次上升沿的变革, 然后按照上述内容依次发送别的各位。 在末了全部发送完成数据后, A0 须要根据当前发送的是命令还是数据, 进行变革。发送完成之后, CS 须要拉高, 准备下一次字节的发送。
程序实现步骤初始化相应的 GPIO
写 LCD 的 SPI 写数据程序
写 LCD 的 SPI 写命令程序
初始化 LCD
程序的详细履行初始化相应的 GPIO。 在这里, 由于我们仅仅用了单向的通讯, 即掌握旗子暗记永久从 MCU 到 LCD, 因此只须要配置上面 5 个掌握引脚为推挽式输出模式“GPIO_Mode_Out_PP”
在定义了以上的初始化程序之后, 为了便于后续的操作方便, 我们可以采取宏定义的办法来定义每个引脚的高低电平输入输出
编写 LCD 的写数据程序。 在这里, 我们先来看下时序图, 如果要写命令的话, 首先须要将 A0 拉高, CS 在写的过程中须要拉低, 接着通过 SCK 和 SDA的合营, 即可将数据完全的发送出去。 发送的时候, 以一个字节为最基本单元,从最高位开始发送, 直至最低位发送出去。
编写 LCD 的写命令程序。 写命令程序和写数据程序类似, 只须要将A0 设置成低电平即可
初始化 LCD。 初始化 LCD 的时候, 我们须要做两件事情, 第一件事设置 LCD 的事情办法; 第二件是掌握 LCD 的背光开关(打开或者关闭) 。这里我们直接给出一样平常的初始化程序:
lcd 复位程序和转为 lcd 操作编写的延迟程序
好了,有这么多,基本上就能跑起来了。
更多的内容请关注头条号:小5嵌入式




![JBL CM102 有源音箱拆解 图集 [Soomal]_有源音箱_单位 JBL CM102 有源音箱拆解 图集 [Soomal]_有源音箱_单位](http://iirqv.cn/zb_users/cache/ly_autoimg/m/MzcyOTQ.png)





