基于STM32的0.96寸OLED显示屏显示数据

   日期:2020-12-22     浏览:130    评论:0    
核心提示:一、了解SPI(串行外设接口)SPI的定义SPI(Serial Peripheral Interface)就是串行外围设备接口。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚。SPI 是一个环形总线结构,由 ss(cs)、sck、sdi、sdo 构成,时序主要是在 sck 的控制下,两个双向移位寄存器进行数据交换。上升沿发送、下降沿接收、高位先发送。上升沿到来的时候,sdo 上的电平将被发送到从设备的寄存器中。下降沿到来的时候,sdi 上的电平将

文章目录

  • 一、了解SPI(串行外设接口)
  • 二、使用0.96寸OLED显示屏显示数据
  • 三、自行修改程序实现显示
  • 四、总结
  • 五、参考资料

一、了解SPI(串行外设接口)

  1. SPI的定义
    SPI(Serial Peripheral Interface)就是串行外围设备接口。
    SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚。SPI 是一个环形总线结构,由 ss(cs)、sck、sdi、sdo 构成,时序主要是在 sck 的控制下,两个双向移位寄存器进行数据交换。
    上升沿发送、下降沿接收、高位先发送。
    上升沿到来的时候,sdo 上的电平将被发送到从设备的寄存器中。
    下降沿到来的时候,sdi 上的电平将被接收到主设备的寄存器中。
  2. SPI的连接方式

    SS( Slave Select):从设备选择信号线,常称为片选信号线。
    SCK (Serial Clock):时钟信号线,用于通讯数据同步。
    MOSI (Master Output, Slave Input):主设备输出/从设备输入引脚。
    MISO(Master Input,,Slave Output):主设备输入/从设备输出引脚。
  3. SPI的通讯过程

    MOSI 与 MISO 的信号只在 NSS 为低电平的时候才有效,在 SCK 的每个时钟周期 MOSI 和 MISO 传输一位数据。

更多内容请参考《【野火®】零死角玩转STM32—F103-MINI》

二、使用0.96寸OLED显示屏显示数据

  1. 实验工具与材料
    软件:keil
    硬件:PC机,STM32开发板(本过程采用的是野火stm32mini开发板),0.96寸OLED显示屏,下载器(本过程采用ST_Link)
  2. 0.96寸OLED显示屏相关介绍
    参考下面链接:
    http://www.lcdwiki.com/zh/0.96inch_SPI_OLED_Module
  3. 运行厂家给出的Demo程序
    ①下载程序
    程序下载链接:
    0.96寸SPI_OLED模块配套资料包
    ②打开资料包,选择与自己平台相同的实例,打开Demo的工程,使用keil编译
    ③将程序烧录到开发板
    ④连接显示屏和开发板

    ⑤运行结果

三、自行修改程序实现显示

显示要求:
显示姓名
显示一串数字

1.姓名中文的点阵(16*16)

由于程序并不需要显示所有的中文,所以将对应需要的文字添加到程序就可以了。

本过程显示的中文内容是哈莉特,需要从中文点阵字库中找到对应的点阵表示。



2.程序代码
哈莉特的存储代码

"哈",0x00,0x40,0x00,0x40,0x00,0xA0,0x78,0xA0,0x49,0x10,0x49,0x08,0x4A,0x0E,0x4D,0xF4,
0x48,0x00,0x48,0x00,0x7B,0xF8,0x4A,0x08,0x02,0x08,0x02,0x08,0x03,0xF8,0x02,0x08,
"莉",0x04,0x40,0x04,0x44,0xFF,0xFE,0x04,0x40,0x06,0x08,0x78,0x08,0x08,0x48,0x08,0x48,
0xFF,0x48,0x08,0x48,0x1C,0x48,0x1A,0x48,0x2A,0x48,0x48,0x08,0x88,0x28,0x08,0x10,
"特",0x10,0x40,0x10,0x40,0x50,0x48,0x53,0xFC,0x7C,0x40,0x50,0x44,0x97,0xFE,0x18,0x10,
0x30,0x10,0xD7,0xFE,0x11,0x10,0x10,0x90,0x10,0x90,0x10,0x10,0x10,0x50,0x10,0x20,

实现显示代码

void TEST_MainPage(void)
{ 	
	GUI_ShowString(28,0,"Harriet",16,1);//英文姓名
	GUI_ShowCHinese(28,20,16,"哈莉特",1);//中文姓名
	GUI_ShowString(4,48,"631807060517",16,1);//数字详细
	delay_ms(1500);		
	delay_ms(1500);
}

main函数

int main(void)
{ 	
	delay_init();	    	       //延时函数初始化 
	OLED_Init();			         //初始化OLED 
	OLED_Clear(0);             //清屏(全黑)
	while(1) 
	{ 	
		TEST_MainPage();         //界面显示
	}
}

3.编译烧录结果

四、总结

本过程主要是对应字库的一个了解,以及怎么实现将点阵格式转换成十六进制格式。出来了给出的几个中文的点阵之外,其他的显示也都是依据点阵进行的存储。其实,整个显示屏也是一个点阵,显示过程就是将显示屏整个点阵中的每个小点进行改变,从而实现显示。

五、参考资料

  1. 通用点阵字库生成工具
  2. 显示屏相关资料

程序完整代码
百度网盘分享链接
https://pan.baidu.com/s/1gMCljDEFuVtfhPN38MX9dA
提取码:bphx

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服