基于SPI/IIC接口的OLED数据显示

前言

任务:

理解OLED屏显和汉字点阵编码原理,使用STM32F103的SPI或IIC接口实现以下功能:

  1. 显示自己的学号和姓名;

  2. 显示AHT20的温度和湿度;

  3. 上下或左右的滑动显示长字符,比如“Hello,欢迎来到重庆交通大学物联网205实训室!”或者歌词、诗词。(最好使用硬件刷屏模式)

设备:
野火指南者(stm32f103)、AHT20温湿度传感器、0.96寸SPI的OLED。

资料链接:https://detail.tmall.com/item.htm?spm=a1z0d.6639537.1997196601.80.201d74841fbMPw&id=556732249552
在这里插入图片描述
这里我做的就是0.96寸SPI 7针

1、字模生成

1、打开字模软件(在上述资料里有)。我的软件在7线–0.96inch_SPI_OLED_Module_SSD1306_MSP096X_V1.0\0.96inch_SPI_OLED_Module_SSD1306_MSP096X_V1.0\7-Character&Picture_Molding_Tool\Tools-PCtoLCD200\PCtoLCD2002完美版
在这里插入图片描述
2、在模式里选择字符模式。选项里选择阴码、顺向、逐行、c51格式。(请根据自己程序修改取模选项)。然后输入需要取模的字符,点击生成字模即可。
在这里插入图片描述

2、软件修改

1、首先先从上面链接下载相应的资料包。
2、打开工程,将主程序main.c修改如下:

int main(void)
{	
	delay_init();	    	       
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);	
	OLED_Init();			        
	OLED_Clear(0);             
	while(1) 
	{	
		TEST_MainPage();         //显示姓名学号
		OLED_Clear(0);
	}
}

3、在test.c里找到以下语句,

void TEST_MainPage(void)

当然,你也可以在main。c里右键单击TEST_MainPage();寻址过去。
4、修改语句如下:

void TEST_MainPage(void)
{	
	GUI_ShowString(20,0,"63180030615",8,1);
	GUI_ShowCHinese(16,20,16,"邱海琪",1);
	delay_ms(1500);		
}

这是我自己的,修改为想要显示的文字数据即可。

注意:如果你增添了文字,记得在下面的字模里增添相应的。

5、在oledfont.h里找到相应函数,增添自己的字模。我这里是宋体、16*16大小、逐行式、顺向。

const typFNT_GB16 cfont16[] = 
{
	"邱",0x00,0x00,0x03,0x3E,0x3C,0x22,0x20,0x24,0x20,0x24,0x20,0x28,0x3F,0xA4,0x22,0x24,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x34,
0x27,0xA8,0xF8,0x20,0x40,0x20,0x00,0x20,
	"海",0x01,0x00,0x21,0x00,0x11,0xFC,0x12,0x00,0x85,0xF8,0x41,0x08,0x49,0x48,0x09,0x28,0x17,0xFE,0x11,0x08,0xE2,0x48,0x22,0x28,
0x23,0xFC,0x20,0x08,0x20,0x50,0x00,0x20,
	"琪",0x01,0x08,0x01,0x08,0xFB,0xFC,0x21,0x08,0x21,0x08,0x21,0xF8,0x21,0x08,0xF9,0x08,0x21,0xF8,0x21,0x08,0x21,0x08,0x3B,0xFE,
0xE0,0x00,0x40,0x90,0x01,0x08,0x02,0x04,
	

};

3、连线

在这里插入图片描述

注意:cs不用连接。

4、结果

完成上述操作后,就可以将程序编译下载进设备运行了
运行结果如下:
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值