STM32的OLED屏显示

本文详细介绍如何在OLED显示屏上定制显示内容,包括下载示例程序、生成字模、改写显示内容、实现滑动显示及温度采集等功能。适合初学者快速上手。


一丶程序打开及改写

1.下载示例程序

在OLED官网下载:
http://www.lcdwiki.com/zh/0.96inch_SPI_OLED_Module

在这里插入图片描述

2.打开示例程序

在刚下载的文件如图路径里打开这个工程
在这里插入图片描述

3.生成字模

利用PCtoLCD软件生成,野火资料包开发软件里面有此软件

在这里插入图片描述配置
在这里插入图片描述

生成字模
在这里插入图片描述

4.改写

进入test.c进行修改,将void TEST_MainPage(void)函数修改为

void TEST_MainPage(void)
{	
	
	GUI_ShowString(20,0,"631807030209",8,1);
	GUI_ShowCHinese(16,20,16,"邓艳洋",1);
	delay_ms(1500);			
}

将main.c修改为

#include "delay.h"
#include "sys.h"
#include "oled.h"
#include "gui.h"
#include "test.h"
int main(void)
{	
	delay_init();	    	       //延时函数初始化	  
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);	 //设置NVIc中断分组2:2位抢占优先级,2位响应优先级
	OLED_Init();			         //初始化OLED
	OLED_Clear(0);             //清屏
	while(1) 
	{	
		TEST_MainPage();         //显示姓名与学号
		OLED_Clear(0); 
		
	}
}

将const typFNT_GB16 cfont16[] = 修改为

const typFNT_GB16 cfont16[] = 
{
"邓",0x00,0x00,0x7E,0x7C,0x02,0x44,0x02,0x48,0x42,0x48,0x24,0x50,0x14,0x48,0x08,0x48,
0x08,0x44,0x14,0x44,0x14,0x44,0x22,0x68,0x42,0x50,0x80,0x40,0x00,0x40,0x00,0x40,/*"邓",0*/
"艳",0x10,0x80,0x10,0x80,0x10,0xF8,0xFD,0x08,0x12,0x10,0x15,0xFC,0x11,0x24,0x7D,0x24,
0x11,0x24,0x11,0xFC,0x11,0x00,0xFD,0x00,0x11,0x02,0x11,0x02,0x10,0xFE,0x10,0x00,/*"艳",1*/
"洋",0x02,0x08,0x21,0x08,0x11,0x10,0x10,0x00,0x87,0xFC,0x40,0x40,0x40,0x40,0x13,0xF8,
0x10,0x40,0x20,0x40,0xE7,0xFE,0x20,0x40,0x20,0x40,0x20,0x40,0x20,0x40,0x00,0x40,/*"洋",2*/
};

5.滑动显示

添加函数,参考https://blog.csdn.net/yxy244/article/details/90480099?utm_source=app

void gundong(void)
{
	OLED_WR_Byte(0x2e,OLED_CMD);//关滚动
    OLED_WR_Byte(0x2A,OLED_CMD);//29向右,2a向左
    OLED_WR_Byte(0x00,OLED_CMD);//A:空字节
    OLED_WR_Byte(0x00,OLED_CMD);//B:水平起始页
    OLED_WR_Byte(0x00,OLED_CMD);//C:水平滚动速度
    OLED_WR_Byte(0x00,OLED_CMD);//D:水平结束页
    OLED_WR_Byte(0x03,OLED_CMD);//E:每次垂直滚动位移
	OLED_WR_Byte(0x2f,OLED_CMD);//开滚动
}																																	

在主函数里调用这个函数即可
在这里插入图片描述

6.温度采集

将上次温度相关程序头文件与c文件和h文件添加进入例程程序
在这里插入图片描述添加函数

extern void temandhum(void)
{
		uint32_t CT_data[2]={0};
		volatile int  c1,t1;
		AHT20_Read_CTdata(CT_data);       
		c1 = CT_data[0]*100*10/1024/1024/10; 
		t1 = (CT_data[1]*200*10/1024/1024-500)/10;
		GUI_ShowCHinese(5,16,16,"温度",1);
		GUI_ShowNum(45,16,t1,3,16,1);
		GUI_ShowCHinese(70,16,16,"℃",1);
		GUI_ShowCHinese(5,40,16,"温度",1);
		GUI_ShowNum(45,40,c1,3,16,1);
		GUI_ShowString(70,40,"%",16,1);
}

二丶接线

按照main.c里写的接
在这里插入图片描述

三丶结果

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值