SWM181 驱动SH1106 1.3寸 OLED屏幕显示

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);			//输出,推挽模式,接LED
		GPIO_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
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值