OLED屏显

目录

一.OLED屏显示文字

二.显示温湿度

 三.滚动显示


前言

下载程序,选择与自己平台相同的实例,打开Demo的工程,使用keil编译

0.96inch SPI OLED Module.

参考用户手册完成引脚连接。

 

一.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);
}	

效果

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在STM32控制OLED屏幕显示时,可以使用以下函数来实现: 1. `OLED_Init()`函数用于初始化OLED屏幕。 2. `OLED_Clear()`函数用于清除屏幕上的内容。 3. `OLED_ShowChar()`函数用于在指定位置显示一个字符。 4. `OLED_ShowNum()`函数用于在指定位置显示一个数字。 5. `OLED_ShowString()`函数用于在指定位置显示一个字符串。 此外,还可以使用`OLED_DrawPoint()`函数来在指定位置绘制一个点,使用`OLED_Fill()`函数来填充一个矩形区域,使用`OLED_Refresh_Gram()`函数来刷新屏幕显示。 在控制OLED屏幕显示时,需要使用SPI接口来与屏幕进行通信。可以使用`OLED_WR_Byte()`函数来向SSD1306写入一个字节的数据或命令。其中,`dat`参数表示要写入的数据,`cmd`参数表示数据或命令的标志,0表示命令,1表示数据。 综上所述,你可以使用以上提到的函数来控制STM32控制OLED屏幕的显示。 #### 引用[.reference_title] - *1* [使用STM32实现OLED屏显](https://blog.csdn.net/qq_52362275/article/details/127573490)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [基于stm32的oled显示](https://blog.csdn.net/ababababa23/article/details/126438483)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值