SWM181 驱动SH1106 1.3寸 OLED屏幕显示

news/2024/11/27 12:32:29/

SWM181 驱动SH1106 1.3寸 OLED屏幕显示


✨实测驱动的屏幕为sh1106,该工程源码不适合通过修改相关的偏移地址来适配ssd1306 I2C 0.96寸屏幕显示,实际修改后,经测试并不能电路屏幕,具体找到ssd1306驱动代码看了一下,在初始化函数中的有关指令有点不一样,但是可以使用下面资料中的ssd1306当中的驱动代码移植过来修改对应的偏移地址可以兼容驱动1.3和0.96两款屏幕。

  • 🌼所使用的开发板:
    在这里插入图片描述

🔖本想通过硬件I2C驱动的,没法点亮屏幕,只能通过软件I2C来驱动。

在这里插入图片描述

  • 📌1.3寸屏幕资料
链接:https://pan.baidu.com/s/1IPY3meKgO1Saeu6uE_4R7g    
提取码:8888
  • 📍 0.96寸屏幕资料
链接:https://pan.baidu.com/s/1xy2zH8-hs-S8-_AcVtBP_g
提取码:0jhj

📑引脚说明

SWM181  --- OLED I2C
PA4 ------  SCL
PA5 ------ SDA

📝主程序代码

#include "SWM181.h"
#include "delay.h"
#include "oled.h"
#include "bmp.h"int main(void)
{	u8 t=' ';SystemInit();GPIO_Init(GPIOB, PIN8, 1, 0, 0, 0);			//输出,推挽模式,接LEDGPIO_Init(GPIOA, PIN4, 1, 1, 0, 1);			//输出,上拉, 开漏输出GPIO_Init(GPIOA, PIN5, 1, 1, 0, 1);			//输出,上拉, 开漏输出OLED_Init();while(1){OLED_ShowPicture(0,0,128,64,BMP1,1);OLED_Refresh();GPIO_InvBit(GPIOB, PIN8);//电平反转delay_ms(250);delay_ms(250);OLED_Clear();OLED_ShowChinese(0,0,0,16,1);//中OLED_ShowChinese(18,0,1,16,1);//景OLED_ShowChinese(36,0,2,16,1);//园OLED_ShowChinese(54,0,3,16,1);//电OLED_ShowChinese(72,0,4,16,1);//子OLED_ShowChinese(90,0,5,16,1);//技OLED_ShowChinese(108,0,6,16,1);//术OLED_ShowString(8,16,(u8*)"ZHONGJINGYUAN",16,1);OLED_ShowString(20,32,(u8*)"2014/05/01",16,1);OLED_ShowString(0,48,(u8*)"ASCII:",16,1);  OLED_ShowString(63,48,(u8*)"CODE:",16,1);OLED_ShowChar(48,48,t,16,1);//显示ASCII字符	   t++;if(t>'~')t=' ';OLED_ShowNum(103,48,t,3,16,1);OLED_Refresh();delay_ms(250);delay_ms(250);OLED_Clear();OLED_ShowChinese(0,0,0,16,1);  //16*16 中OLED_ShowChinese(16,0,0,24,1); //24*24 中OLED_ShowChinese(24,20,0,32,1);//32*32 中OLED_ShowChinese(64,0,0,64,1); //64*64 中OLED_Refresh();GPIO_InvBit(GPIOB, PIN8);//电平反转delay_ms(250);delay_ms(250);OLED_Clear();OLED_ShowString(0,0,(u8*)"ABC",8,1);//6*8 “ABC”OLED_ShowString(0,8,(u8*)"ABC",12,1);//6*12 “ABC”OLED_ShowString(0,20,(u8*)"ABC",16,1);//8*16 “ABC”OLED_ShowString(0,36,(u8*)"ABC",24,1);//12*24 “ABC”OLED_Refresh();GPIO_InvBit(GPIOB, PIN8);//电平反转delay_ms(250);delay_ms(250);OLED_ScrollDisplay(11,4,1);}
}

📚程序源码


链接: https://pan.baidu.com/s/1QSvCCAWLCSeQk4zoslRA4A
提取码: nvnj

http://www.ppmy.cn/news/116723.html

相关文章

1.3寸 SH1106 OLED 屏幕驱动 基于stm32

1.前言 最近公司使用了一块用SH1106驱动的OLED 屏幕,但是发现网上的OLED大部分都是基于ssd1306驱动芯片的,关于SH1106的资料比较少,因此将自己使用过程中遇到的问题写下来。 2.电路及连接 屏幕使用的是IIC接口,按照正常的iiC连…

0.96寸4针OLED的使用与驱动模块

简单的说下OLED OLED,即有机发光二极管。LCD 需要背光,而OLED不需要,因为它是自发光的。这样同样的显示OLED效果要来得好一些。OLED分辨率是128*64 供电电压可以是3-5V 支持8600和8080通讯协议,4针是使用IIC协议来控制…

1.44寸OLED的Linux驱动

目录 1. 开发环境介绍1.1 野火的IMX.6ULL PRO开发板1.2 ST7735S TFT 液晶屏 2. 连线说明3. 设备树节点3. 驱动程序编写步骤3.1 在驱动入口注册spi_driver, 在出口注销spi_driver3.2 在probe函数内部初始化液晶屏硬件设备,注册fire_oparation结构体3.3 编写基础的函数…

Android LCD驱动

LCD驱动 分为三部分:驱动程序架构、程序分析、程序实现 1.驱动程序架构: 从裸机程序可以知道LCD驱动有两部分组成:初始化(控制器初始化、端口初始化、非常重要–指明帧缓冲)、LCD图形显示(将图形数据写入帧缓冲) 所以说帧缓冲很重要 帧缓冲:简单讲就是内存中的一块…

多态的向上转型调用方法的时候调用的是子类重写的方法还是父类的方法

子类 在Java中,当一个对象调用其方法时,实际执行的方法取决于对象的运行时类型而不是编译时类型。这种行为称为动态绑定(dynamic binding)或后期绑定(late binding)。 class Animal {public void makeSou…

Kohl‘s百货的EDI需求详解

Kohls是一家美国的连锁百货公司,成立于1962年,总部位于美国威斯康星州的门多西。该公司经营各种商品,包括服装、鞋子、家居用品、电子产品、化妆品等,并拥有超过1,100家门店,分布在美国各地。本文将为大家介绍Kohls的E…

推荐算法 - 协同过滤算法

协同过滤算法是常见的一种推荐算法,通过分析用户历史行为和对物品的偏好,从而预测用户可能喜欢或购买的物品。协同过滤算法主要分为两部分:基于用户的协同过滤(User-Based Collaborative Filtering)和基于物品的协同过…

文件夹加密超级大师的金钻加密和闪电加密有什么区别?

作为一款专业的文件夹加密软件,文件夹加密超级大师提供了5种文件加密类型,其中金钻加密和闪电加密在加密后效果看似差不多,那么它们有什么区别呢?下面我们就来了解一下吧。 闪电加密更快速 当我们想要加密那些超级庞大的文件夹时…