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

本文介绍了如何使用STM32F103通过SPI/IIC接口驱动0.96寸OLED显示屏,实现显示学号姓名、AHT20温湿度数据及滑动显示长字符的功能。详细讲解了SPI接口的工作原理,并提供了字模生成及代码修改步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

一、实验要求

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

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

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

  3. 上下或左右的滑动显示长字符,比如“Hello,欢迎来到重庆交通大学物联网205实训室!”

 


 

二、SPI

SPI( Serial Peripheral Interface-串行外设接口)总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。SPI有三个寄存器分别为: 控制寄存器SPCR,状态寄存器SPSR,数据寄存器SPDR。外围设备包括 FLASHRAN、网络控制器、LCD显示驱动器、A/D转换器和MCU等。SPI总线系统可直接与各个厂家生产的多种标准外围器件直接接口,该接口一般使用4条线:串行时钟线(SCLK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOS和低电平有效的从机选择线NSS(有的SP接口芯片带有中断信号线NT、有的SPI接口芯片没有主机输出/从机输入数据线MOSI)。

在这里插入图片描述

 


 

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

0.96寸OLED官网

在0.96寸OLED官网上下载相关程序。
在这里插入图片描述

资料包下载完成后解压出来,选择适合自己板子的相应的程序。

在这里插入图片描述
 

点开工程,修改相应的程序代码

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_ShowCHinese(28,20,16,"ÌïÀ©",1)
	GUI_ShowString(4,48,"631807030621",16,1);
	delay_ms(1500);		
	delay_ms(1500);
}

 

3)将字模代码粘贴到oledfront.h文件中

野火stm32有相应的字模软件
在这里插入图片描述

打开字模软件,点击选项,将取模方式设置为逐行式,显示数设置为16X16。

在这里插入图片描述

输入需要的文字,点击生成字模,复制备用。
在这里插入图片描述
复制到oledfront.h文件中
在这里插入图片描述

 

按开发板的要求将oled显示屏连接起来
在这里插入图片描述

在这里插入图片描述

 

进行编译和烧录等操作

在这里插入图片描述

得到如下实验结果

在这里插入图片描述

 


 

四、显示AHT20的温度和湿度

基于I2C的温湿度采集

根据上次基于I2C的温湿度采集的实验,可利用该实验的相关文件来完成本次的显示AHT20的温度和湿度的任务。

 

将bsp_i2c.c,bsp_i2c.h,usart.c,usart.h这几个文件加入到USER目录下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值