目录
前言
下载程序,选择与自己平台相同的实例,打开Demo的工程,使用keil编译
参考用户手册完成引脚连接。
一.OLED屏显示文字
本次实验需要显示汉字和数字,其中数字已经包含const unsigned char F6x8[][8]
在数组中,无需设置。显示的文字需要通过PCtoLCD2002这款软件实现。
然后将下面生成的字模复制,在代码中相应位置粘贴。
实现显示代码
void TEST_MainPage(void)
{
GUI_ShowString(28,0,"Harriet",16,1);//英文姓名
GUI_ShowCHinese(28,20,16,"***",1);//中文姓名
GUI_ShowString(4,48,"632007060308",16,1);//数字详细
delay_ms(1500);
delay_ms(1500);
}
main函数
int main(void)
{
delay_init(); //延时函数初始化
OLED_Init(); //初始化OLED
OLED_Clear(0); //清屏(全黑)
while(1)
{
TEST_MainPage(); //界面显示
}
}
效果
二.显示温湿度
向USER里添加之前温湿度博客中工程里的几个文件bsp_i2c.h,bsp_i2c.c,usart.h,usart.c
修改main.c
#include "delay.h"
#include "sys.h"
#include "oled.h"
#include "gui.h"
#include "test.h"
#include "usart.h"
#include "bsp_i2c.h"
int main(void)
{
int *H,*T;
int a,b,c,d;
int H1=0;
int T1=0;
H=&H1;
T=&T1;
delay_init(); //延时函数初始化
NVIC_Configuration(); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
OLED_Init(); //初始化OLED
OLED_Clear(0);
IIC_Init();
//清屏(全黑)
while(1)
{
read_AHT20_once(T,H);
GUI_ShowCHinese(16,00,16,"温湿度显示 ",1);
GUI_ShowCHinese(16,10,16,"温度 ",1);
a=*T/10;
b=*T%10;
GUI_ShowNum(60,10,a,2,16,1);
GUI_ShowString(80,10,".",16,1);
GUI_ShowNum(82,10,b,2,16,1);
GUI_ShowCHinese(16,30,16,"湿度 ",1);
c=*H/10;
d=*H%10;
GUI_ShowNum(60,30,c,2,16,1);
GUI_ShowString(80,30,".",16,1);
GUI_ShowNum(82,30,d,2,16,1);
}
}
效果
三.滚动显示
先生成字模然后添加。
main函数:
int main(void)
{
delay_init(); //延时函数初始化
NVIC_Configuration(); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
OLED_Init(); //初始化OLED
OLED_Clear(0); //清屏(全黑)
OLED_WR_Byte(0x2E,OLED_CMD); //关闭滚动
OLED_WR_Byte(0x26,OLED_CMD); //水平向左或者右滚动 26/27
OLED_WR_Byte(0x00,OLED_CMD); //虚拟字节
OLED_WR_Byte(0x00,OLED_CMD); //起始页 0
OLED_WR_Byte(0x07,OLED_CMD); //滚动时间间隔
OLED_WR_Byte(0x07,OLED_CMD); //终止页 7
OLED_WR_Byte(0x00,OLED_CMD); //虚拟字节
OLED_WR_Byte(0xFF,OLED_CMD); //虚拟字节
TEST_MainPage(); //主界面显示测试
OLED_WR_Byte(0x2F,OLED_CMD); //开启滚动
}
部分显示代码
void TEST_MainPage(void)
{
GUI_ShowString(28,0,"HELLO",16,1);
GUI_ShowCHinese(12,16,16,"欢迎来到重庆交通大学",1);
delay_ms(1500);
delay_ms(1500);
}
效果