基于SPI/IIC接口的OLED数据显示
一、实验要求
理解OLED屏显和汉字点阵编码原理,使用STM32F103的SPI或IIC接口实现以下功能:
显示自己的学号和姓名;
显示AHT20的温度和湿度;
上下或左右的滑动显示长字符,比如“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官网上下载相关程序。
资料包下载完成后解压出来,选择适合自己板子的相应的程序。
点开工程,修改相应的程序代码
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的温湿度采集的实验,可利用该实验的相关文件来完成本次的显示AHT20的温度和湿度的任务。
将bsp_i2c.c,bsp_i2c.h,usart.c,usart.h这几个文件加入到USER目录下。