要求
理解OLED屏显和汉字点阵编码原理,使用STM32F103的SPI或IIC接口实现以下功能:
-
显示自己的学号和姓名;
-
显示AHT20的温度和湿度;
-
上下或左右的滑动显示长字符,比如“Hello,欢迎来到重庆交通大学物联网205实训室!”或者一段歌词或诗词(最好使用硬件刷屏模式)。
标题一.SPI
定义:
SPI是串行外设接口(Serial Peripheral Interface)的缩写,SPI是一种高速、全双工、同步通信的通信总线,被广泛应用在ADC、LCD等与MCU的通信过程中,特点就是快。
3种SPI的处理流程大同小异,使用最多的SPI-4为例来说明SPI的原理。它在发送接口和接收接口都有各自的数据通道和流控状态信息通道,其数据通道和流控状态信息通道是独立的并且是点对点通信。
oled引脚

对应stm32引脚
GND-GND
VCC-3.3/5V
D0-PB13
D1-PB15
RES-PB12
DC-PB10
CS-PB11
二.实例
1)个人学号姓名
文字需要使用文字取模软件。可以在网上下载。

在文字输入区这里输入你需要的文字,输入完成后,按CTRL+enter右边出现了你要输入的字表示你输入进去了,点击左边的取模方式,选择C51格式随后出现你文字的16进制代码。


将其复制好,备用。文字取阵完成。
/*-- 文字: 未 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x01,0x00,0x01,0x00,0x01,0x00,0x3F,0xF8,0x01,0x00,0x01,0x00,0x01,0x00,0xFF,0xFE,
0x03,0x80,0x05,0x40,0x09,0x20,0x11,0x10,0x21,0x08,0xC1,0x06,0x01,0x00,0x01,0x00,
/*-- 文字: 几 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x00,0x0F,0xE0,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,
0x08,0x20,0x08,0x20,0x10,0x20,0x10,0x22,0x20,0x22,0x20,0x22,0x40,0x1E,0x80,0x00,
代码部分
打开test.c文件 找到void TEST_MainPage(void)函数,编辑内容如下

void TEST_MainPage(void)
{
// GUI_ShowString(28,0,"Harriet",16,1);
GUI_ShowCHinese(10,20,16,"未几",1);//
GUI_ShowString(40,32,"12345678910",16,1);
//GUI_ShowString(40,32,"64X128",16,1);
//GUI_ShowString(4,48,"www.lcdwiki.com",16,1);
delay_ms(1500);
delay_ms(1500);
}
取出来的文字代码存储到oledfont.h文件
在const typFNT_GB16 cfont16[] =函数内,将刚刚取出的代码复制其中。
随后编译烧录
效果如下
2) 显示AHT20的温度和湿度;
main函数更改如下
#include "delay.h"
#include "usart.h"
#include "bsp_i2c.h"
#include "sys.h"
#include "oled.h"
#include


2489

被折叠的 条评论
为什么被折叠?



