基于SPI/IIC接口的OLED数据显示

该博客介绍了如何使用STM32F103通过SPI或IIC接口操作0.96寸OLED显示屏,实现显示学号、姓名以及滚动显示长字符等功能。实验涉及汉字点阵编码原理,利用野火mini开发板和keil5环境,提供相关资源下载,并详细说明了引脚连接和字模生成过程。
摘要由CSDN通过智能技术生成

基于SPI/IIC接口的OLED数据显示

实验任务:

理解OLED屏显和汉字点阵编码原理,使用STM32F103的SPI或IIC接口实现以下功能:

  1. 显示自己的学号和姓名;

  2. 显示AHT20的温度和湿度;

  3. 上下或左右的滑动显示长字符(最好使用硬件刷屏模式)

实验环境

keil5
野火mini开发板
基于SPI的0.96寸OLED显示屏

资源下载

http://www.lcdwiki.com/zh/0.96inch_SPI_OLED_Module
在这里插入图片描述
在这里插入图片描述

引脚连接

在下载好的资源中查看引脚连接
在这里插入图片描述
在这里插入图片描述
按照表中方式连接好引脚

在这里插入图片描述

用字模工具找到自己的名字抠出来

下载好的资源中有字模工具
在这里插入图片描述
在这里插入图片描述
保存好字模
在这里插入图片描述

显示自己的学号和姓名

在资源文件中找到代码并修改
将生成的字模写入下面函数
在这里插入图片描述
修改输出信息
在这里插入图片描述
将程序烧录进开发板中,显示出结果
在这里插入图片描述

滚动显示长字符

字模软件生成字模
在这里插入图片描述

界面显示函数中写入字模

  "测",0x00,0x04,0x27,0xC4,0x14,0x44,0x14,0x54,0x85,0x54,0x45,0x54,0x45,0x54,0x15,0x54,
  0x15,0x54,0x25,0x54,0xE5,0x54,0x21,0x04,0x22,0x84,0x22,0x44,0x24,0x14,0x08,0x08,/*"测",0*/
  "试",0x00,0x28,0x20,0x24,0x10,0x24,0x10,0x20,0x07,0xFE,0x00,0x20,0xF0,0x20,0x17,0xE0,
  0x11,0x20,0x11,0x10,0x11,0x10,0x15,0x10,0x19,0xCA,0x17,0x0A,0x02,0x06,0x00,0x02,/*"试",1*/
  "滚",0x00,0x80,0x20,0x40,0x17,0xFC,0x11,0x10,0x82,0x48,0x44,0x84,0x41,0x20,0x13,0xF0,
  0x10,0x10,0x20,0x88,0xE1,0x50,0x23,0x20,0x25,0x10,0x29,0x48,0x21,0x86,0x01,0x00,/*"滚",2*/
  "屏",0x00,0x00,0x3F,0xF8,0x20,0x08,0x20,0x08,0x3F,0xF8,0x24,0x10,0x22,0x20,0x2F,0xF8,
  0x22,0x20,0x22,0x20,0x3F,0xFC,0x22,0x20,0x42,0x20,0x44,0x20,0x84,0x20,0x08,0x20,/*"屏",3*/
  "程",0x08,0x00,0x1D,0xFC,0xF1,0x04,0x11,0x04,0x11,0x04,0xFD,0xFC,0x10,0x00,0x30,0x00,
  0x39,0xFE,0x54,0x20,0x54,0x20,0x91,0xFC,0x10,0x20,0x10,0x20,0x13,0xFE,0x10,0x00,/*"程",4*/
  "序",0x01,0x00,0x00,0x80,0x3F,0xFE,0x20,0x00,0x23,0xF8,0x20,0x10,0x20,0xA0,0x20,0x40,
  0x2F,0xFE,0x20,0x42,0x20,0x44,0x20,0x40,0x40,0x40,0x40,0x40,0x81,0x40,0x00,0x80,/*"序",5*/

修改main函数

int main(void)
{	
	delay_init();	    	       //延时函数初始化	  
	NVIC_Configuration(); 	   //设置NVIC中断分组2:2位抢占优先级,2位响应优先级 	
	OLED_Init();			         //初始化OLED  
	OLED_Clear(0); 	           //清屏(全黑)
	OLED_WR_Byte(0x2E,OLED_CMD);        //关闭滚动
    OLED_WR_Byte(0x27,OLED_CMD);        //水平向左或者右滚动 26/27
    OLED_WR_Byte(0x00,OLED_CMD);        //虚拟字节
	OLED_WR_Byte(0x00,OLED_CMD);        //起始页 0
    OLED_WR_Byte(0x07,OLED_CMD);        //滚动时间间隔
	OLED_WR_Byte(0x07,OLED_CMD);        //终止页 7
	OLED_WR_Byte(0x00,OLED_CMD);        //虚拟字节
	OLED_WR_Byte(0xFF,OLED_CMD);        //虚拟字节
    TEST_MainPage();         //主界面显示测试
	OLED_WR_Byte(0x2F,OLED_CMD);        //开启滚动
	while(1) 
	{	
	}
}

烧录结果显示
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值