STM32——OLED(2)

这篇具有很好参考价值的文章主要介绍了STM32——OLED(2)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、OLED显示屏介绍

引脚说明:

二、OLED驱动

1. 基本认识

2. OLED 驱动原理 及过程

三、SSD1306工作时序 (8080时序)

1. 8080并口读/写过程

2. SSD1306工作时序 (8080时序)

四、屏幕显示

1. GRAM

补:

2. 画点原理

3. 显示字符

显示步骤:

具体操作:(使用的软件:PCtoLCD2002)

五、OLED基本驱动实现(任意地方画点)


一、OLED显示屏介绍

oled画点函数是如何编写的,stm32,嵌入式硬件,单片机,笔记,OLED

        一块小尺寸(0.96寸)、高亮、自带升压电路的高性能OLED显示模块,分辨率为128 * 64,采用 SSD1306 驱动 IC。

引脚说明:

        ① CS:OLED片选信号(低电平有效)

        ② WR:向 OLED写入 数据

        ③ RD:向 OLED读取 数据

        ④ D[7:0]:8位 双向 数据线

        ⑤ RST( RES ):硬复位 OLED(低电平有效)

        ⑥ DC:数据 / 命令标志(0:命令;1:数据)

二、OLED驱动

1. 基本认识

(1)8080时序:LCD驱动芯片一般使用8080时序控制,实现 数据写入 / 读取

(2)初始化序列(数组):屏厂提供,用于初始化特定屏幕,不同屏幕厂家不完全相同

(3)画点函数、读点函数(非必需):基于这两个函数可以 实现各种绘图功能

2. OLED 驱动原理 及过程

        OLED屏驱动的核心是:OLED驱动芯片

oled画点函数是如何编写的,stm32,嵌入式硬件,单片机,笔记,OLED

(1)选择驱动芯片时序:根据时序实现数据写入/读取。( 8080底层操作函数:写数据、写命令、读数据

(2)初始化LCD:由厂家提供,用于初始化屏幕。发送初始化序列/数组 )

(3)实现画点函数:有了画点函数,就可以 实现各种操作函数了。

(4)实现读点函数:用于读取屏幕颜色,一般上 GUI了才用,可不用。

三、SSD1306工作时序 (8080时序)

        并口总线时序,常用于MCU屏 驱动 IC的访问,由 Intel提出,也叫 英特尔总线

1. 8080并口读/写过程

(1)设置DC为高(数据)/低(命令):根据写入 / 读取的数据类型。

(2)拉低片选:选中 SSD13063。

(3)设置RD / WR为低:根据是读数据还是写数据

(4)拉高RD / WR,出现上升沿:在 RD的上升沿,使数据锁存到 数据线 D[7:0]上。在 WR的上升沿,使数据写入到 SSD1306里。

oled画点函数是如何编写的,stm32,嵌入式硬件,单片机,笔记,OLED

2. SSD1306工作时序 (8080时序)

oled画点函数是如何编写的,stm32,嵌入式硬件,单片机,笔记,OLED

oled画点函数是如何编写的,stm32,嵌入式硬件,单片机,笔记,OLED

四、屏幕显示

1. GRAM

        图形显示数据RAM是一个位映射静态RAM保存要显示的位模式。内存大小为128 * 64位,可分为8页,从页0到页7,用于黑白128 * 64点阵显示。

oled画点函数是如何编写的,stm32,嵌入式硬件,单片机,笔记,OLED

oled画点函数是如何编写的,stm32,嵌入式硬件,单片机,笔记,OLED

补:

        对 GRAM 进行操作时,列地址指针会自动递增。当 列地址指针到达 列结束地址时,重置为 开始地址,但 页地址指针不变。用户必须 设置新的页面和列地址,以便访问 下一页GRAM内容。

oled画点函数是如何编写的,stm32,嵌入式硬件,单片机,笔记,OLED

2. 画点原理

        建立一个 OLED的 GRAM:单片机内部需要 128 * 8个字节,每次修改 的时候,只是修改单片机上的 GRAM(实际上就是 SRAM),在修改完之后,一次性把单片机 内部的 GRAM 写入到OLED 的 GRAM

oled画点函数是如何编写的,stm32,嵌入式硬件,单片机,笔记,OLED

 一个通用的点 (x,y) 置 1 表达式为:OLED_GRAM [ x ] [ y / 8 ]  |= 1 << y % 8 

3. 显示字符

        ASCII字符:基于拉丁字母的一套电脑编码系统,共128个字符:33个控制字符 和 95个显示字符。

oled画点函数是如何编写的,stm32,嵌入式硬件,单片机,笔记,OLED

oled画点函数是如何编写的,stm32,嵌入式硬件,单片机,笔记,OLED

        计算机使用的 二进制字符编码,就叫 内码,简称 编码。 

显示步骤:

(1)必须先有其 点阵数据,点阵数据的集合,叫做 字库。

(2)单片机根据点阵数据 按取模方向进行 描点还原,显示出 字符。

(3)ASCII 字符宽度 = 汉字宽度的一半。

oled画点函数是如何编写的,stm32,嵌入式硬件,单片机,笔记,OLED

        从上到下  从左到右  高位在前 

具体操作:使用的软件:PCtoLCD2002

oled画点函数是如何编写的,stm32,嵌入式硬件,单片机,笔记,OLED

(1)设置字体大小

oled画点函数是如何编写的,stm32,嵌入式硬件,单片机,笔记,OLED

(2)设置自摸选择

oled画点函数是如何编写的,stm32,嵌入式硬件,单片机,笔记,OLED

(3)输入ASCII字符集(95个)

(4)生成字模

oled画点函数是如何编写的,stm32,嵌入式硬件,单片机,笔记,OLED

五、OLED基本驱动实现(任意地方画点)

1. 确定 lO 连接关系:开发板 OLED接口 原理图。

2. 初始化 IO 口:初始化连接 OLED的各个 IO 口。

3. 编写 8080接口 函数:oled_wf_byte

/* 此为示例函数 */

void oled_wr_byte(uint8_t data, uint8_t cmd) 
{	
	OLED_RS (cmd);	/* 数据类型,由传参决定 */
    OLED_CS ( 0 );	/* 拉低片选线,选中 SSD1306 */
    OLED_WR ( 0 );	/* 拉低WR线,准备数据 */
    oled_data_out(data); /* WR低电平期间,准备数据*/
 	OLED_WR ( 1 );	/* 在WR上升沿,数据发出 */
    OLED_CS ( 1 );	/* 取消片选 */
 	OLED_RS ( 1 );	/* 释放RS线,恢复默认 */
}

void oled_data_out(uint8_t data)
{
    GPIOC->ODR = (GPIOC->ODR & 0XFF00) | (data & 0X00FF);
}

4. 编写 OLED初始化函数:编写 oled_int 函数,完成初始化序列配置。

5. 编写 OLED画点 函数编写:oled_draw_point函数,实现OLED任意位置画点。

/* 此为示例函数 */

void oled_draw_point(uint8_t  x, uint8_t  y, uint8_t  dot) 
{	
	uint8_t pos, bx, temp = 0;
	if (x > 127 || y > 63)	 return;    /* 超出范围 */ 		
	pos = y / 8; 		/*  页地址 */
	bx = y % 8; 		/*  计算y在对应字节里面的位置 */
	temp = 1 << bx;	/*  转换后y对应的bit位置 */
	
	if ( dot )	/*  画实心点 */
		g_oled_gram[ x ][ pos ] |= temp;
	else
		g_oled_gram[ x ][ pos ] &= ~temp;
}

可以结合这篇文章:

    STM32——LCD(1)认识

文章来源地址https://www.toymoban.com/news/detail-825811.html

到了这里,关于STM32——OLED(2)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32——OLED(2)

    目录 一、OLED显示屏介绍 引脚说明: 二、OLED驱动 1. 基本认识 2. OLED 驱动原理 及过程 三、SSD1306工作时序 (8080时序) 1. 8080并口读/写过程 2. SSD1306工作时序 (8080时序) 四、屏幕显示 1. GRAM 补: 2. 画点原理 3. 显示字符 显示步骤: 具体操作:(使用的软件:PCtoLCD2002) 五、OLED基

    2024年02月19日
    浏览(36)
  • STM32——OLED菜单

    简介:首先在我的51 I2C里面有OLED详细讲解,本期代码从51OLED基础上移植过来的,可以先看完那篇文章,在看这个,然后按键我是用的定时器扫描不会堵塞程序,可以翻开我的文章有单独的定时器按键扫描,DHT11文章也有,我的菜单从一级界面点进去二级界面,二级界面开启的内

    2024年02月19日
    浏览(41)
  • STM32外设系列—OLED

    🎀 文章作者:二土电子 🌸 关注文末公众号获取其他资料和工程文件! 🐸 期待大家一起学习交流! OLED是开发时常用的显示器件,这里介绍的是0.96寸的四针脚OLED,IIC控制。 供电电压在3V~5V,用3.3V即可。 I2C通信接口由从地址位DC、I2C总线数据信号SDA(输出SDAOUT/D2输出,SD

    2024年02月13日
    浏览(44)
  • 【STM32】学习笔记(OLED)

    2024年02月10日
    浏览(33)
  • STM32之OLED显示

    一、模块介绍 1、常见的显示设备 LED、数码管、点阵、LCD屏(1602/12864)、OLED屏(消费电子) 2、OLED屏的概述 OLED,即有机发光二极管(Organic Light-Emitting Diode),又称为有机电激光显示(Organic Electroluminesence Display, OELD)。因为具备 轻薄、省电等 特性,因此从2003 年开始,这种显示

    2024年01月17日
    浏览(41)
  • stm32+OLED显示数据

    理解OLED屏显和汉字点阵编码原理,使用STM32F103的SPI或IIC接口实现以下功能: 显示自己的学号和姓名; 显示AHT20的温度和湿度; 上下或左右的滑动显示长字符。 OLED(Organic Light Emitting Display,中文名有机发光显示器)是指有机半导体材料和发光材料在电场驱动下,通过载流子注

    2024年02月02日
    浏览(32)
  • STM32-OLED显示屏

    *本文采用的OLED显示屏为4针脚IIC显示屏,4针脚分别为GND,VCC,SCL,SDA OLED.C OLED_Font.h main.c

    2024年02月05日
    浏览(43)
  • STM32进阶-OLED屏幕模块

    实验前言: 在当今的嵌入式系统开发领域,STM32微控制器因其强大的性能和广泛的应用范围而受到广泛应用。为了进一步扩展其应用范围,我们常常需要与各种外部设备进行交互。其中,OLED屏幕模块作为一种高分辨率、低功耗的显示设备,能够为我们提供丰富的图形和文本信

    2024年04月26日
    浏览(39)
  • 基于stm32的oled显示

    目录 1.显示原理  2.接口配置 8080并行接口模式 spi四线 3.程序控制 基于stm32的oled显示(以ALINETEK0.96寸OLED模块为例) ALINETEK0.96寸OLED模块由SSD1306驱动芯片控制: SSD1306的显存总共为128*64bit大小,分为八页,每页为128个字节,共计128*68位,以此对应屏幕的168*64像素,将显存的各位

    2024年02月05日
    浏览(39)
  • stm32+MAX30102+OLED

    stm32 + 1个心率血氧模块(MAX30102)+ 1个WiFi模块(ESP8266-01S) + 蜂鸣器 + OLED显示+ 本地数据保存(内置Flash ROM或附加SD卡) 背景:对医院住院危重患者的心率和血氧进行实时监测并报警。 主要功能与要求: 1)了解外置心率血氧模块(MAX30102)检测心率和血氧浓度的原理;模块的接

    2024年01月21日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包