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

一、实验要求

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

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

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

  3. 上下或左右的滑动显示长字符,比如“欢迎来到重庆“

二、了解SPI(串行外设接口)

1、SPI的定义
SPI(Serial Peripheral Interface)就是串行外围设备接口。
SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚。SPI 是一个环形总线结构,由 ss(cs)、sck、sdi、sdo 构成,时序主要是在 sck 的控制下,两个双向移位寄存器进行数据交换。
上升沿发送、下降沿接收、高位先发送。
上升沿到来的时候,sdo 上的电平将被发送到从设备的寄存器中。
下降沿到来的时候,sdi 上的电平将被接收到主设备的寄存器中。

2、SPI的连接方式

在这里插入图片描述
SS( Slave Select):从设备选择信号线,常称为片选信号线。
SCK (Serial Clock):时钟信号线,用于通讯数据同步。
MOSI (Master Output, Slave Input):主设备输出/从设备输入引脚。
MISO(Master Input,,Slave Output):主设备输入/从设备输出引脚。
3、SPI的通讯过程

在这里插入图片描述
MOSI 与 MISO 的信号只在 NSS 为低电平的时候才有效,在 SCK 的每个时钟周期 MOSI 和 MISO 传输一位数据。

更多内容请参考《【野火®】零死角玩转STM32—F103-指南者》

三、使用0.96寸OLED显示屏显示数据

①0.96寸OLED显示屏相关介绍
链接: link.
②厂家给出的Demo程序
程序下载链接: link.
③打开资料包,选择与自己平台相同的实例,打开Demo的工程,使用keil编译
④将程序烧录到开发板
⑤连接显示屏和开发板
在这里插入图片描述

1、显示自己的学号和姓名

选择适合自己板子的相应的程序
在这里插入图片描述
1)修改main.c

#include "delay.h"
#include "sys.h"
#include "oled.h"
#include "gui.h"
#include "test.h"
int main(void)
{
   	
	delay_init();	    	      
	NVIC_Configuration(); 
	OLED_Init();			       
	OLED_Clear(0);           
	while(1) 
	{
   	
		TEST_MainPage(); 
		
	 }  
} 

2)修改test.c的TEST_MainPage函数

void TEST_MainPage(void)
{
   	
	/*GUI_ShowString(28,0,"xiongmao",16,1);*/
	GUI_ShowCHinese(28,20,16,"熊猫",1);
	//GUI_ShowString(40,32,"64X128",16,1);
	GUI_ShowString(4,48,"631807030330",16,1);
	//GUI_ShowString(4,48,"www.lcdwiki.com",16,1);
	delay_ms(1500);		
	delay_ms(1500);
}

3)将字模代码粘贴到oledfront.h文件中
野火资料包有相应软件
在这里插入图片描述
在这里插入图片描述
打开字模软件,点击选项,将取模方式设置为逐行式,显示数设置为16X16。
在这里插入图片描述
在这里插入图片描述
复制到oledfront.h文件中

"熊",0x10,0x80,0x24,0x98,0x42,0xE0,0x7E,0x84,0x00,0x84,0x7E,0x7C,0x42,0x80,0x7E,0x98,0x42,0xE0,0x7E,0x84,0x42,0x84,0x46,0x7C,
0x00,0x00,0x48,0x88,0x44,0x44,0x84,0x44,/*"熊",0*/
"猫",0x00,0x88,0x44,0x88,0x2B,0xFE,0x10,0x88,0x28,0x88,0x48,0x00,0x89,0xFC,0x09,0x24,0x19,0x24,0x29,0x24,0x49,0xFC,0x89,0x24,
0x09,0x24,0x09,0x24,0x51,0xFC,0x21,0x04,/*"猫",1*/

4)进行编译烧录得到如下实验结果

在这里插入图片描述

2、显示AHT20的温度和湿度</

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值