当前位置: 首页 > article >正文

【STM32】OLED

OLED显示原理

在这里插入图片描述
OLED使用的是I2C协议,使用ssd1306芯片对所有灯进行控制,如果一个灯需要一个引脚的话,屏幕分为8页,每页有128列,8行 .
共有128* 88个灯
在这里插入图片描述
这样引脚是算不过来的,所以我们使用了ssd1306芯片,在上个博客我们用到的每个从机都有自己的地址
在这里插入图片描述
同时要控制这么多的灯,也不能只给数据,比方说我们要对其显示进行重置,亮度改变,光标位置 ,如果是指令的话,就把对应指令数据写入寄存器0x00, ,如果是数据的话,就写入0x40寄存器。
现在我们要确定的是要选哪一页,如果选择第0页,地址就是0xb0。
选择第1页 ,0xb1, 0xb2,0xb3,0xb4,0xb5,0xb6,0xb7
选择好哪一页的话,8
128,继续选择哪一列,但是对应列的选择的话
比方说选择第67列,则分为列的高位和低位,算出67的16进制
在这里插入图片描述

设置低位:0x03 高位给0+3
设置高位: 0x14 高位给1+4

接着设置数据:让第一列全亮给0xff

上面操作都使用了一个函数

HAL_I2C_Mem_Write();

在这里插入图片描述

根据上面解释 点亮第0页的第一列
1.选择页

      uint8_t pData;
	 pData=0xb0;  //选择第0页
   HAL_I2C_Mem_Write(&hi2c1,0x78,0x00,I2C_MEMADD_SIZE_8BIT,&pData,1,HAL_MAX_DELAY);

2.配置列 第0列 列低位:0x00

	 pData=0x00;  //配置哪一列(低位)
   HAL_I2C_Mem_Write(&hi2c1,0x78,0x00,I2C_MEMADD_SIZE_8BIT,&pData,1,HAL_MAX_DELAY);
    pData=0x10;  //配置哪一列(高位)
   HAL_I2C_Mem_Write(&hi2c1,0x78,0x00,I2C_MEMADD_SIZE_8BIT,&pData,1,HAL_MAX_DELAY);

3.配置数据,使第一列全亮

   pData=0xff;  //八个灯全亮
   HAL_I2C_Mem_Write(&hi2c1,0x78,0x00,I2C_MEMADD_SIZE_8BIT,&pData,1,HAL_MAX_DELAY);

注意在所有操作之前需要对屏幕初始化,以及清屏

     OLED_Init();//初始化
	 OLED_Clear();//清屏操作

在这里插入图片描述
在这里插入图片描述
对应指令操作在手册中都可以查到
展示
在这里插入图片描述

OLED显示字符数字

OLED_ShowChar();

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如何根据字模软件来设置字符,以及字符的大小
选择字符模式
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
生成字模
复制到oled.h中
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


OLED显示汉字

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


http://www.kler.cn/a/300696.html

相关文章:

  • 部署后端WebSocket服务到AWS云服务器
  • C++与QML的数据交互
  • 数字证书学习
  • MySQL——DCL
  • C#的属性和方法
  • opencv羊群计数,动态目标检测跟踪
  • List集合特点,遍历方式,ArrayList(去重原理,增长因子论,LinkedList)
  • 【Kubernetes】常见面试题汇总(十一)
  • milvus的二进制文件集群部署
  • 区块链当前发展和未来展望
  • 【微服务】⭐️华为云obs功能抽取到公共服务,供所有项目使用
  • 【机器学习】马尔可夫随机场的基本概念、和贝叶斯网络的联系与对比以及在python中的实例
  • JS设计模式之装饰者模式:优雅的给对象增添“魔法”
  • 健身房|基于springboot的健身房管理系统设计与实现(附项目源码+论文+数据库)
  • Python数据分析与可视化
  • leetcode hot100_part01_哈希
  • Spring和Spring FrameWork有什么关系?两者是同一个东西吗?
  • 白帽SEO搜索引擎pc端怎么引流
  • Chrome和Chromium浏览器有什么不同?
  • knowLedge-在组件的第一次创建时执行某个方法,而在后续的创建中不执行: