0.96寸OLED屏调试 ----(二)

所需设备:

1、USB 转 SPI I2C 适配器;内附链接

2、0.96寸OLED显示模块;

备注:专业版、升级版都适用;

读写控制

  SSD1306通过 D/C# 和 R/W# 两位来确定:读/写数据,写命令和读状态四种通信行为。具体如下图,不再赘述:

GDDRAM内部结构
  显示RAM:GDDRAM(Graphic Display Data RAM )内部结构如下所示:
  GDDRAM是位映射静态RAM,大小为 128x64 位。GDDRAM分为8页(PAGE0~PAGE7),每页内 1个SEG对应1Byte数据,一页由 128 Byte 组成。一帧显示数据为 1024 Byte(1KB)。

1个数据字节写入GDDRAM时,当前列(SEG)同一页(PAGE)的所有行(COM)图像数据都被填充(即由列地址指针指向的整列(8位)被填充)。数据位D0写入顶行,数据位D7写入底行。(由上到下,由低到高)

三种GDDRAM寻址模式
 页寻址

  页寻址模式是器件默认选择的GDDRAM寻址模式,通过“20H,02H”命令可以设置寻址模式为页寻址。
  页寻址模式下,寻址只在一页(PAGEn)内进行,地址指针不会跳到其他页。每次向GDDRAM写入1byte显示数据后,列指针会自动+1。当128列都寻址完之后,列指针会重新指向SEG0而页指针仍然保持不变。通过页寻址模式我们可以方便地对一个小区域内数据进行修改。

  水平寻址
  水平寻址模式可以通过指令“20H,00H”来设置。
  水平寻址模式下,每次向GDDRAM写入1byte数据后,列地址指针自动+1。列指针到达结束列之后会被重置到起始列,而页指针将会+1。页地址指针达到结束页之后,将会自动重置到起始页。水平寻址模式适用于大面积数据写入,例如一帧画面刷新。
  (下图所示起始页为0,结束页为7;起始列为0,结束列为127)

垂直寻址
  垂直寻址模式可以通过指令“20H,01H”来设置。
  垂直寻址模式下,每次向GDDRAM写入1byte数据之后,页地址指针将会自动+1。页指针到达结束页之后会被重置到0,而列指针将会+1。列地址指针达到结束页之后,将会自动重置到起始列。
  (下图所示起始页为0,结束页为7;起始列为0,结束列为127)

待续! 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/774097.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从凑零钱问题理解动态规划

给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。 你可以认为每种硬币的数量是无限的。 示例…

【论文笔记】RobotGPT: Robot Manipulation Learning From ChatGPT

【论文笔记】RobotGPT: Robot Manipulation Learning From ChatGPT 文章目录 【论文笔记】RobotGPT: Robot Manipulation Learning From ChatGPTAbstractI. INTRODUCTIONII. RELATED WORK1. LLMs for Robotics2. Robot Learning III. METHODOLOGY1. ChatGPT Prompts for Robot …

【MySQL】9. 内置函数

函数 1. 日期函数 获得年月日: mysql> select current_date(); ---------------- | current_date() | ---------------- | 2024-03-23 | ---------------- 1 row in set (0.00 sec)获得时分秒: mysql> select current_time(); ------------…

vue3+Pinia的使用 - 封装

目录: persist.ts 可存储到本地 import { PersistedStateOptions } from "pinia-plugin-persistedstate";/*** description pinia 持久化参数配置* param {String} key 存储到持久化的 name* param {Array} paths 需要持久化的 state name* return per…

测试缺陷定位的基本方法

前后端bug特征 后端: 业务逻辑问题:如任务状态未扭转成功,创建任务失败等数据类问题:如新增的任务在页面没有展示出来等性能类问题:提交任务一直显示创建中、批量操作等待耗时长超时等 前端: 页面显示类…

基于人类反馈的强化学习:最核心的5个步骤

基于人类反馈的强化学习( Reinforcement Learning with Human Feedback)工作原理 强化学习正在彻底改变技术和商业世界中复杂问题的处理方式。这是一种强大的工具。通过该工具,机器能够从环境中学习并根据奖惩做出明智的决策。 但是&#x…

约克中央空调YES-will系列,舒适冷暖与高品质家居的优选

漫漫寒冬,室内一片寒意,开启空调多久才能享受到暖意?如果冬季气温较低,空调能否保持正常的制热运行? 炎炎夏季,即便在室内也同样是“暴汗”不断,身上黏糊糊,什么样的家用中央空调才能快速制冷,让全家人感受到舒适,同时又能避免传统空调直吹带来的一系列问题? 遇上梅雨季节…

面试题 之 webpack

1.说说你对webpack理解?解决什么问题? Webpack 是实现前端项目的模块化,用于现代 JavaScript 应用程序的静态模块打包工具,被webpack 直接引用的资源打包进 bunde.js的资源,当webpack 处理应用程序时,它会在内部构建一…

SpringBoot-注解:@Async 使用

不同类中使用Async 线程配置初始化类-ThreadPoolConfig package com.zzdy.recharge.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.annotation.EnableA…

迁移android studio 模拟器位置

android studio 初始位置是安装在c盘,若是要迁移需 1创建一个目标位置如我的F:/avd 2在系统环境变量里面设置新的地址 变量名:ANDROID_SDK_HOME 变量值:F:/avd 3最重要的是文件复制,将C盘里面avd的上层目录.android的目录整体…

【哈希专题】【蓝桥杯备考训练】:星空之夜、模拟散列表、字符串哈希、四平方和、扫雷【已更新完成】

目录 1、星空之夜(usaco training 5.1) 2、模拟散列表(模板) 3、字符串哈希(模板) 4、四平方和(第七届蓝桥杯省赛C A组/B组 & JAVA B组/C组) 5、扫雷(Google Ki…

2024室内设计和建筑必须知道的十大3D渲染趋势!

2023年对建筑圈是非常不平凡的一年,高清视频渲染、元宇宙全覆盖、AI模型大爆发.....不断发展的 3D 数字技术世界正迅速重塑建筑设计行业。 2024年,室内设计和建筑设计领域在3D渲染方面又将迎来怎样的变革?以下十大3D渲染趋势,你不…

python dict 序列化

python dict 序列化 在Python中,可以使用json模块来序列化(转换为JSON格式的字符串)和反序列化(将JSON格式的字符串转换回字典)一个字典。 序列化: import json # 假设有一个字典 data { name: J…

五、Elasticsearch 集成

目录 5.1 Spring Data 框架集成5.1.1 Spring Data 框架介绍5.1.2 Spring Data Elasticsearch 介绍5.1.3 Spring Data Elasticsearch 版本对比5.1.4 集成步骤 5.1 Spring Data 框架集成 5.1.1 Spring Data 框架介绍 Spring Data 是一个用于简化数据库开发的开源框架。其主要目…

❤️算法笔记❤️-(每日一刷-26、删除有序数组的重复项)

文章目录 题目思路解法 题目 给你一个 非严格递增排列 的数组 nums ,请你** 原地** 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。 考虑 nums 的唯…

【python】(07)理解Python中函数的参数类型

系列文章回顾 【python】(01)初识装饰器Decorator 【python】(02)初识迭代器Iterator 【python】(03)初识生成器Generator 【python】(04)python中实现多任务并发和并行的区别 【python】(05)如何使用python中的logging模块记录日志信息 【python】(06)理解Python中的 lambda 、…

【JVM】JVM简介

文章目录 🌴简介🌲JVM发展史🌸Sun Classic VM🌸Exact VM🌸HotSpot VM🌸JRockit🌸J9 JVMTaobao JVM(国产研发) 🌳JVM 运行流程⭕总结 🌴简介 JVM …

c语言中动态内存管理

说到内存,大家一定都知道。但是有一种函数可以实现动态内存管理,下面大家一起学习。 文章目录 一、为什么要有动态内存管理?二、malloc 和 free1.malloc2.free 三、calloc 和 realloc1.calloc2.realloc3.常见的动态内存的错误3.1对NULL指针的…

C++之std::mem_fn使用和实现原理(全)

C进阶专栏:http://t.csdnimg.cn/5mV9r 目录 1.简介 2.使用 3.实现原理 4.使用注意 5.总结 1.简介 函数模板std :: mem_fn生成指向成员的指针的包装对象,该对象可以存储,复制和调用指向成员的指针。 调用std :: mem_fn时,可以…

SpringMVC基础Controller

文章目录 Controller 的编写和配置1. Controller 注解类型2. RequestMapping 注解类型3. 编写请求方法4. 请求参数和路径变量 Controller 的编写和配置 Controller 注解和 RequestMapping 注解是 Spring MVC 最重要的两个注解。 使用基于注解的控制器的优点如下: …