一、OLED屏显和汉字点阵编码原理
OLED(有机发光显示器)是一种自发光式显示器,其工作原理是利用有机半导体材料和发光材料在电场驱动下产生发光现象。OLED屏幕由多个像素组成,每个像素可以独立控制亮度和颜色。
在OLED屏幕上显示汉字时,需要将汉字的点阵数据发送到屏幕的相应位置。这可以通过SPI(串行外设接口)协议来实现。SPI协议是一种同步串行通信协议,用于连接芯片之间进行数据传输。在OLED屏幕中,主机通过SPI总线将图像数据发送到屏幕,包括控制信号、数据信号等
1.汉字点阵编码原理:
汉字点阵编码是将汉字转换为点阵图像的编码方式。每个汉字都可以由一个矩形的点阵组成,点阵中的每个点都可以表示一个汉字的一个字形。常用的点阵大小有12x12、14x14、16x16等,每个点用0或1表示,0代表没有点,1代表有点。这样,每个汉字就可以通过一个二进制数组来表示。
汉字的点阵编码通常采用区位码的方式表示。区位码将汉字分为若干区和若干位,每个区包含一定数量的汉字,每个位包含一定数量的字形。通过区号和位号的组合,可以唯一地确定一个汉字的点阵编码。例如,在GB2312编码中,每个汉字的区号范围是0x01-0x7F,位号范围是0x01-0x7F,共分为94个区和94个位,每个区包含94个汉字,每个位包含94个字形。
2.SPI协议原理:
SPI(Serial Peripheral Interface)是一种串行外设接口,它是一种同步串行通信协议,用于连接微控制器、存储器、传感器等外围设备。SPI通信是基于主从模式的,一个主设备控制传输并与多个从设备通信。
SPI协议的原理是主从模式,即一个主设备控制传输并与多个从设备通信。主设备和从设备之间通过SPI总线连接,这条总线由四根线组成:SCLK(serial clock)、MOSI(master out slave in)、MISO(master in slave out)和SS(slave select)。主设备通过SPI总线将时钟信号(SClk)发送到从设备,从设备在接收到时钟信号后开始传输或接收数据。数据传输是全双工的,主设备通过MOSI线发送数据到从设备,从设备通过MISO线将数据发送回主设备。在传输数据之前,主设备会通过SS线选择一个从设备进行通信。当SS线上的电平被拉低时,被选中的从设备会进入通信状态,而其他未被选中的从设备则保持沉默。
SPI总线根据数据传输的顺序不同而有所区别。在模式0中,数据传输的顺序是高位在前,低位在后;而在模式1中,数据传输的顺序是低位在前,高位在后。这两种模式是SPI总线的主要模式。
SPI的时序:
二、使用OLED显示自己的学号和姓名
1.在文字取模软件中设置相应选项
2.在该软件中输入文字并获取字模并存入对应的oled库
3.在test.c的文件中TEST_MainPage函数位置编写
4.编写main.c文件
#include "delay.h"
#include "sys.h"
#include "oled.h"
#include "gui.h"
#include "test.h"
int main(void)
{
delay_init(); //延时函数初始化
NVIC_Configuration(); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
OLED_Init(); //初始化OLED
OLED_Clear(0); //清屏(全黑)
while(1)
{
TEST_MainPage(); //主界面显示测试
/*OLED_Clear(0);
Test_Color(); //刷屏测试
OLED_Clear(0);
Test_Rectangular(); //矩形绘制测试
OLED_Clear(0);
Test_Circle(); //圆形绘制测试
OLED_Clear(0);
Test_Triangle(); //三角形绘制测试
OLED_Clear(0);
TEST_English(); //英文显示测试
OLED_Clear(0);
TEST_Number_Character(); //数字和符号显示测试
OLED_Clear(0);
TEST_Chinese(); //中文显示测试
OLED_Clear(0);
TEST_BMP(); //BMP单色图片显示测试
OLED_Clear(0);
TEST_Menu1(); //菜单1显示测试
OLED_Clear(0);
TEST_Menu2(); //菜单2显示测试
OLED_Clear(0); */
}
}
5.实现效果
三、使用OLED显示AHT20的温度和湿度
1.编写bsp_i2c.c中的read_AHT20函数
void read_AHT20(void)
{
uint8_t i;
for(i=0; i<6; i++)
{