OLED---SPI

//OLED=优点:节能省电自发光,无需背光源。

//OLED接口模式(为图简单通常使用SPI)

1、6800、8080两种并行接口

2、4线SPI接口和I2C(只需要两根线就可以控制)接口

OLED---SPI

//0.96村OLED模块(分辨率128*64bit)---SSD1306B驱动--SSD1306B的显存一共128*64bit,SSD1306B将显存分为了8页,每页包含128个byte,一共128*8byte(也就是128*64bit),对应xy坐标GRAM[128][8],128列,8行

//OLED显示原理

STM32在内部建立了一个128*8byte的缓存区(也就是SRAM空间),每次程序修改之后,一次性将数据从SRAM上传到OLED的GRAM中去。

附:对于3线或者4线SPI模式,SSD1306B这个模块是不支持读只能往里面写数据,而一个周期内接收8位数据帧时没有提前读状态,造成了往里面写数据后,可能原本不需要点亮的位置被点亮了,而需要点亮的位置么有被点亮,为了解决这个问题,在STM32内部建立了一个OLED的128*8byte的缓存区...

OLED---SPI

0:OLED设置对比度
     发送两个字节
     第一个字节为命令-0x81
     第二个字节为设置对比度值,值越大屏幕越亮(0X00-0XFF)

1:关闭/开启OLED显示
     发送一个命令字节,高七位固定,最低位X0=0关闭显示,X0=1开启显示
     0xAE:关闭显示
     0xAF:开启显示

2:关闭/开启电荷泵
     发送两个字节
     第一个字节为命令-0x8D
     第二个字节为设置电荷泵开关
          位0,1,4,5,6固定,位6位7随意,位2控制电荷泵开关
          A2=0关闭电荷泵
          A2=1开启电荷泵
     注意:在模块初始化时,必须开启,否则看不到屏幕显示

3:0xB0-0xB7 设置页地址
     发送一个字节,高5位固定
     位0-位2 , X[2:0]共3位, 值范围0-7对应页0-7地址(共8页)

4:0x00-0x0F设置列地址起始低四位
     高四位固定
     低四位设置列地址起始低四位

5:0x10-0x1F设置列地址起始高四位
     高四位固定
     低四位设置列地址起始高四位
————————————————
 

//OLED初始化过程

OLED---SPI  

GPIO口初始化、OLED驱动初始化(必要时需要关闭JTAG)、开启显示、清屏操作、开始显示。

因为 OLED 是无背光的,在初始化之后,我们把
显存都清空了,所以我们在屏幕上是看不到任何内容的,跟没通电一个样,不要以为这就是初
始化失败,要写入数据模块才会显示的。

 

 

上一篇:【漏洞复现】Chrome 最新0day RCE


下一篇:BUG_1:谨防RAM溢出导致程序不正常的问题