基于SPI接口的OLED数据显示

一、显示自己的学号和姓名;

1、首先在OLED官网. 下载相关程序
OLED官网
2、下载完成后解压并找到Demo_STM32文件夹下的0.96inch_OLED_Demo_STM32F103ZET6_Hardware_4-wire_SPI文件,打开其中的MDK工程文件
在这里插入图片描述
3、把开发板与OLED显屏模块连接起来,连接方式如下:
在这里插入图片描述

cs不接。

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

4、在原有工程的基础上进行改动,首先把mian.c函数里除以下函数之外的函数注释掉

TEST_Chinese();          //中文显示测试
OLED_Clear(0)

5、打开test.c文件,修改void TSET_Chinese函数如下:

void TEST_Chinese(void)
{	
	GUI_ShowString(45,0,"631807030116",8,1);
	GUI_ShowCHinese(16,20,16,"烨烨",1);
}

在这里插入图片描述
6、打开指南者资料中开发软件的字模生成软件PCtoLCD2002
在这里插入图片描述
7、在1处输入想要显示的字,如果不调整字的位置,字是反的,所以按2->4的顺序翻转或反转字形,然后点生成字模
在这里插入图片描述
8、打开下载的OLED资料中HARDWARE->OLED文件,用记事本方式打开ioedfont文本
在这里插入图片描述
9、把刚刚生成的字模粘贴到以下结构体数组中在这里插入图片描述
10、稍微修改一下,删掉大括号(引号或逗号都要英文模式),修改好后保存。
在这里插入图片描述
11、最后把程序编译成功后烧录到开发板中,最后的结果如下:
。9

二、显示AHT20的温度和湿度;

1、把上一次关于AHT20温湿度采集的博客.中使用过的bsp_i2c.c、bsp_i2c.h、usart.c、usart…h文件添加到这次的工程的USER文件夹中
在这里插入图片描述
2、在MDK中选中USER文件,右键弹出选项,选择Add Existing Files to Group
在这里插入图片描述
3、选中刚添加的四个文件,点Add,Close
在这里插入图片描述
结果如下:
在这里插入图片描述
4、然后向HARDWARE文件夹加入stm32f10x_usart.c,该文件在STM32F10x_FWLib\src中,操作同上
在这里插入图片描述
5、添加温湿度和冒号的字模到oledfont.h文件中,方法同上
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
6、把工程的主函数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 H1=0,T1=0;
	int a,b,c,d;
	H=&H1;
	T=&T1;
	delay_init();	    	       //ÑÓʱº¯Êý³õʼ»¯	  
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);	 //ÉèÖÃNVICÖжϷÖ×é2:2λÇÀÕ¼ÓÅÏȼ¶£¬2λÏìÓ¦ÓÅÏȼ¶	
	OLED_Init();			         //³õʼ»¯OLED  
	OLED_Clear(0);             //ÇåÆÁ£¨È«ºÚ£©
	uart_init(115200);	 //´®¿Ú³õʼ»¯Îª115200
	IIC_Init();
	while(1) 
	{	
		read_AHT20_once(T,H);
		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);
	}
}

7、AHT20的连接方式与上文提到的博客内连接方式相同

三、上下或左右的滑动显示长字符

1、同一工程文件,把在主函数main.c的while循环中加入以下函数

GUI_ShowCHinese(20,25,16,"»¶Ó­À´µ½ÖØÇ콻ͨ´óѧ",1);
delay_ms(50);
roll();

2、在oled.c文件末尾加上以下函数,以实现左右滑动

//硬件滚动
void roll(void)
{  
	OLED_WR_Byte(0x2F, OLED_CMD);  
	OLED_WR_Byte(0x27, OLED_CMD);   
	OLED_WR_Byte(0x00,OLED_CMD);       
  	OLED_WR_Byte(0x00,OLED_CMD);        
  	OLED_WR_Byte(0x07,OLED_CMD);        
  	OLED_WR_Byte(0x2E,OLED_CMD); 	
  	while(1);
}


3、相关文字字模记得添加
在这里插入图片描述
4、编译通过后烧录到开发板,最终结果如下:
在这里插入图片描述

总结

  以上就是本次OLED的数据显示内容,实践时在理解程序功能和添加调整字模过程有点困难和繁琐,但好歹做下来了,还行。

参考:
基于SPI接口的OLED数据显示.

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值