STM32软件模拟iic驱动oled(显示汉字,图片)(二)

2023-05-16

在上一篇介绍的软件模拟iic及iic源码后,今天来实现显示汉字与图片以及各个函数的介绍。

一.函数介绍及使用

1.显示字符

OLED_ShowStr(unsigned char x, unsigned char y, unsigned char ch[], unsigned char TextSize)

x,y(所在页数)为显示字符的初始坐标,ch[]为需要显示的字符串,直接“hello world”填入即可,TextSize为字号可以填入1与2,当填入1时,函数调用的为codetab.h中的6*8点阵数组,当填入2时调用的是8*16点阵数组。所谓6*8,8*16就是在oled上占格的大小,oled分辨率为64*128,所以在应用时要计算好格数,以免oled上显示不全

OLED_ShowStr(0,0,"safasf124",2);

 

 

2.显示汉字

OLED_ShowCN(unsigned char x, unsigned char y, unsigned char N)

x,y(所在页数)为字符的起始坐标,N为汉字的模在16*16点阵中的索引,每两行为一个索引。

OLED_ShowCN(49,0 ,6);
OLED_ShowCN(65, 0,7);
OLED_ShowCN(81,0 ,8);

 

 

3.显示BMP图片

OLED_DrawBMP(unsigned char x0,unsigned char y0,unsigned char x1,unsigned char y1,unsigned char BMP[])

x0,y0(所在页数)为起始点坐标,x1,y1(所在页数)为图片终点坐标,BMP[]为bmp图片模的数组。

unsigned char ssss[]=
{
0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x40,0xA0,0x00,0x10,0x08,0x08,0x00,0x44,0x34,
0x04,0x80,0x80,0x00,0x84,0x04,0x04,0x00,0x00,0x08,0x00,0x10,0x00,0x20,0x40,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x20,0x08,0x02,0x11,0x20,0x80,0x61,0xD2,0xE8,0xF4,0xFA,0xFC,0xFD,0x7E,
0x3E,0x1E,0x8E,0xDE,0xF6,0xEE,0x7F,0x7D,0x7C,0x7A,0xF4,0xE8,0x91,0x40,0x00,0x00,
0x21,0x24,0x18,0xC0,0x00,0x00,0xC0,0x08,0x18,0x00,0x00,0x40,0x60,0x20,0xE0,0x20,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0xA0,0x68,0xF8,0x90,0x18,0xD4,0x16,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x04,0x0C,0x00,0x00,0x88,0x7C,0xD8,0x48,
0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x08,0x00,0x00,0x24,0xAC,0x80,0xE8,0x86,
0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0x80,0x80,0xC0,0x40,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x90,0xC0,0x4F,0x14,0xB0,0x7C,0xC0,0x00,0x00,
0x00,0x3F,0x00,0x00,0x80,0x80,0x00,0x73,0x1C,0x3F,0x7F,0x7F,0xFB,0xFD,0xFE,0xFA,
0xFE,0x9B,0xC3,0xC3,0xF3,0x7A,0x7F,0x7F,0x7E,0x7F,0x3F,0x3F,0x3F,0x8C,0x33,0x00,
0x80,0x00,0x00,0xC0,0x00,0x00,0x33,0x78,0x0C,0x01,0x00,0x10,0x18,0x0E,0x0B,0x08,
0x08,0x00,0x00,0x00,0x00,0x20,0x20,0x2C,0x16,0x0F,0x18,0x16,0x48,0x45,0x3F,0x09,
0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x0F,0x30,0x04,0x04,0x06,0x2B,0x2E,0x2B,0x1D,
0x11,0x21,0x00,0x00,0x00,0x00,0x00,0x0E,0x18,0x02,0x00,0x04,0x04,0x03,0xFF,0x02,
0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x1D,0x01,0x00,0x04,0x0C,0x18,0x10,
0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x40,0x52,0x7E,0x12,0x11,0x10,0x00,0x00,
0x00,0x00,0x01,0x04,0x10,0x23,0x0A,0x10,0x11,0x26,0x89,0x01,0x14,0x2C,0x2C,0x1C,
0x5C,0x5D,0x54,0x14,0x55,0x57,0x0B,0x2B,0xAB,0x93,0x4B,0x05,0x42,0x11,0x88,0x45,
0x20,0x08,0x06,0x00,0x00,0x00,0x10,0x20,0x1C,0x00,0x00,0x20,0x1C,0x18,0x20,0x3C,
0x08,0x10,0x00,0x18,0x24,0x24,0x30,0x00,0x2C,0x24,0x10,0x00,0x20,0x20,0x00,0x00,
0x00,0x00,0x00,0x00,0x18,0x24,0x24,0x18,0x00,0x24,0x24,0x14,0x00,0x3C,0x2C,0x24,
0x20,0x1C,0x1C,0x20,0x1C,0x08,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x1C,
0x00,0x1C,0x10,0x3C,0x00,0x00,0x00,0x04,0x30,0x0C,0x00,0x3C,0x2C,0x24,0x00,0x04,
0x04,0x38,0x00,0x2C,0x24,0x00,0x3C,0x00,0x04,0x3C,0x04,0x04,0x08,0x0C,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x00,0x04,0x01,0x01,0x09,0x09,
0x01,0x00,0x02,0x02,0x00,0x00,0x09,0x08,0x00,0x04,0x04,0x02,0x00,0x01,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
OLED_DrawBMP(0,0,128,5, ssss);

 

 

二.汉字与图片的取模

1.汉字取模

以PCtoLCD2002为例

 设置如图所示,

然后在此处输入需要显示的字即可生成字模

 

在下方将会显示各个汉字对应的字模,将字模复制到16*16的点阵数组中利用索引引用即可显示

 2.BMP图片取模

使用Ima2Lcd,将图片导入,设置为水平扫描(其实不管怎样扫描都一样),因为oled分辨率为64*128,所以要设置最大宽度和高度不超过这两个值, 还要注意输出图像的大小(正下方有写),这个将作为输出图像的结束坐标。

导出图片之后,将图片在取模工具中打开,设置模式为图形模式,

然后将字模复制,在代码中定义图片的字模数组,调用函数即可。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

STM32软件模拟iic驱动oled(显示汉字,图片)(二) 的相关文章

  • 如何更改闪存的起始地址?

    我正在使用 STM32F746ZG 和 FreeRTOS Flash的起始地址是0x08000000 但我想把它改成0x08040000 我通过谷歌搜索了这个问题 但没有找到解决方案 我更改了链接器脚本 如下所示 MEMORY RAM xr
  • 初始化 ST-Link 设备时出错 - 无法连接到设备

    我目前正在使用 ST Link 调试器对我的 STM32F3 Discovery 板进行编程 我使用的IDE是Atollic TrueStudio 5 5 2 现在我面临一个非常奇怪的问题 那就是我不断收到消息 初始化 ST Link 设备
  • 在没有 IDE 的情况下如何使用 CMSIS?

    我正在使用 STM32F103C8T6 并想使用 CMSIS 这本质上只是寄存器定义 没有代码 让我的生活更轻松 同时仍保持在较低水平 问题是我不知道如何安装该库以便在命令行上使用 Makefile 使用 所有文档似乎都与特定于供应商的 I
  • 134-基于stm32单片机矿井瓦斯天然气浓度温湿度检测自动通风系统Proteus仿真+源程序...

    资料编号 134 一 功能介绍 1 采用stm32单片机 LCD1602显示屏 独立按键 ds1302时钟 DHT11温湿度 电机 蜂鸣器 制作一个基于stm32单片机矿井瓦斯天然气浓度温湿度检测自动通风系统Proteus仿真 2 通过DH
  • HAL库STM32常用外设教程(二)—— GPIO输入\输出

    HAL库STM32常用外设教程 二 GPIO输入 输出 文章目录 HAL库STM32常用外设教程 二 GPIO输入 输出 前言 一 GPIO功能概述 二 GPIO的HAl库驱动 三 GPIO使用示例 1 示例功能 四 代码讲解 五 总结
  • Push_back() 导致程序在进入 main() 之前停止

    我正在为我的 STM32F3 Discovery 板使用 C 进行开发 并使用 std deque 作为队列 在尝试调试我的代码 直接在带有 ST link 的设备上或在模拟器中 后 代码最终在 main 中输入我的代码之前在断点处停止 然
  • 匹配 STM32F0 和 zlib 中的 CRC32

    我正在研究运行 Linux 的计算机和 STM32F0 之间的通信链路 我想对我的数据包使用某种错误检测 并且由于 STM32F0 有 CRC32 硬件 并且我在 Linux 上有带有 CRC32 的 zlib 所以我认为在我的项目中使用
  • SHT10温湿度传感器——STM32驱动

    实验效果 硬件外观 接线 3 3V供电 IIC通讯 代码获取 查看下方 END
  • 解决KEIL编译慢问题

    两种方案 使用v6版本的ARM Compiler 如果v6版本编译不过 必须使用v5版本的 则可以勾选掉Browse Information选项 提升很明显 1分多钟能优化到几秒 看代码量 但是这个有个弊端 在KEIL中会影响函数跳转 建议
  • VS Code 有没有办法导入 Makefile 项目?

    正如标题所说 我可以从现有的 Makefile 自动填充 c cpp properties json 吗 Edit 对于其他尝试导入 makefile 的人 我找到了一组脚本 它们完全可以实现我想要实现的目标 即通过 VS Code 管理
  • 跟着野火学FreeRTOS:第一段(任务定义,切换以及临界段)

    在裸机系统中 系统的主体就是 C P U CPU CP U 按照预先设定的程序逻辑在 m a i n
  • 最终启动顺序错误 - STM32L476 的 Eclipse System Workbench 调试

    我正在尝试调试和运行 STM32L476 的简单汇编代码 我已经设置了 Eclipse Oxygen 在 Eclipse 中安装了最新版本的 System Workbench 插件并安装了 ST Link 驱动程序 IDE 成功构建了程序
  • STM32 暂停调试器时冻结外设

    当到达断点或用户暂停代码执行时 调试器可以停止 Cortex 中代码的执行 但是 当皮质停止在暂停状态下执行代码时 调试器是否会冻结其他外设 例如 DMA UART 和定时器 您只能保留时间 r 取决于外围设备 我在进入主函数时调用以下代码
  • CMSIS & STM32,如何开始? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想在 STM32 上使用 CMSIS 启动项目 网上一搜 没找到具体的教程 有些使用 SPL 开始项
  • for循环延时时间计算

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 pandas是什么 二 使用步骤 1 引入库 2 读入数据 总结 前言 之前做led点亮的实验 好像是被delay函数影响了 因为delay参数设置的不对
  • 嵌入式开发--STM32G4系列片上FLASH的读写

    这个玩意吧 说起来很简单 就是几行代码的事 但楞是折腾了我大半天时间才搞定 原因后面说 先看代码吧 读操作 读操作很简单 以32位方式读取的时候是这样的 data IO uint32 t 0x0800F000 需要注意的是 当以32位方式读
  • 核心耦合内存在 STM32F4xx 上可执行吗?

    尝试从 STM32F429s CCM 运行代码 但每当我命中 CCM 中的第一条指令时 我总是会遇到硬故障 并且 IBUSERR 标志被设置 该指令有效且一致 STM32F4xx 是否可能不允许从 CCM 执行 数据访问效果良好 alios
  • PWM DMA 到整个 GPIO

    我有一个 STM32F4 我想对一个已与掩码进行 或 运算的 GPIO 端口进行 PWM 处理 所以 也许我们想要 PWM0b00100010一段时间为 200khz 但随后 10khz 后 我们现在想要 PWM0b00010001 然后
  • HAL_Delay() 陷入无限循环

    我被 HAL Delay 函数困住了 当我调用此函数 HAL Delay 时 控制陷入无限循环 在寻找问题的过程中 我发现了这个 http www openstm32 org forumthread2145 threadId2146 htt
  • 移动数组中的元素

    我需要一点帮助 我想将数组中的元素向上移动一个元素 以便新位置 1 包含位置 1 中的旧值 new 2 包含 old 1 依此类推 旧的最后一个值被丢弃 第一个位置的新值是我每秒给出的新值 我使用大小为 10 的数组 uint32 t TE

随机推荐

  • 虚拟机中ubuntu系统联网问题——以桥接模式解决

    前因后果就不说了 xff0c 这里只记录方法 xff0c 希望未来再遇到这种问题可以及时解决 文章目录 我电脑的配置与环境解决方案 桥接模式打开已经连接的WiFi的属性 xff0c 记录IPv4的相关值打开虚拟网络编辑器 xff0c 设置桥
  • 无人机导航定位技术-复习

    文章目录 无线电导航 要求 精度 陆基导航 定义 塔康导航 TACAN 范围 天线 结构设计 信标方向 伏尔导航 VOR 定义 工作原理 建设要求 拓展 测距器 DME
  • 记录——golang版本更新代码

    环境 Ubuntu20 04 解决方法 方法一 xff1a 将旧版本的go卸载 xff0c 重新安装最新版本的go xff08 我使用且成功的 xff09 sudo apt get remove golang 1 span class to
  • ArcGIS10.6“License许可启动无响应”解决方法

    以下是我尝试过的方法 关闭防火墙 xff08 很必要 xff09 替换 Service txt 及 34 ARCGIS exe 34 文件 xff08 感觉没什么用 xff09 修改服务设置 xff08 很必要 xff09 更改注册表 xf
  • 学好网络编程注意的点

    注 xff1a 总结不完善后续继续总结 对于TCP连接 xff1a 1 服务器端1 xff09 创建套接字create xff1b 2 xff09 绑定端口号bind xff1b 3 xff09 监听连接listen xff1b 4 xff
  • C++中的.和:以及::还有->的区别

    1 A B则A为对象或者结构体 xff1b 2 A gt B则A为指针 xff0c gt 是成员提取 xff0c A gt B是提取A中的成员B xff0c A只能是指向类 结构 联合的指针 xff1b 3 是作用域运算符 xff0c A
  • C++静态库与动态库以及Windows上的创建以及使用

    一 什么是库 库是写好的现有的 xff0c 成熟的 xff0c 可以复用的代码 现实中每个程序都要依赖很多基础的底层库 xff0c 不可能每个人的代码都从零开始 xff0c 因此库的存在意义非同寻常 本质上来说库是一种可执行代码的二进制形式
  • C/C++ 函数的定义 声明 调用的区别

    C语言基础 xff1a 函数 xff08 定义函数 声明函数 调用函数 xff08 传值调用 引用调用 xff09 函数的参数 xff08 形参 实参 xff09 xff09 1 函数 函数是一组一起执行一个任务的语句 每个 C 程序都至少
  • jar包的处理

    用命令创建 jar命令详解 jar cf test jar test不显示压缩过程将当前路径下的test路径下的全部内容生成一个test jar文件 xff0c 如果已经存在则被覆盖 jar cvf test jar test显示压缩过程
  • Matlab2016及以上版本设置VS编译器

    Matlab2016及以上版本设置VS编译器 在Matlab中使用mex可以编译c c 43 43 xff0c 但是首先要设置好编译器 xff0c 可以使用mex setup命令来设置 如果电脑上是先安装的Visual Studio xff
  • Qt修改UI文件无效解决方案

  • win10关闭升级win11

    win10 11系统之中有一个令人厌倦的作用 xff0c 那便是自动升级 很多人会想起本来电脑上在应用全过程之中没什么难题 xff0c 系统却经常发生升级 xff0c 占用系统資源 xff0c 还会发生自动重启的状况 xff0c 又不可以放
  • 流程图、类图推荐的软件

    inux 下的绘图软件Visio 流程图 xff0c 矢量图 5款替代微软Visio的开源免费软件
  • 屏幕坏点检测

    屏幕坏点检测
  • 解析json方案

    方案一 方案二 方案三 方案四 方案五 方案六 方案七
  • 51单片机+DHT11温湿度传感器+LCD1602显示(最好用的程序,没有之一)

    DHT11传感器原理很简单 xff08 我就不过多解释了 xff09 xff0c 但使用中可能会遇到很多问题 xff0c 问题的本质大部分出在了延时函数之中 xff0c 传统的软件延时与实际相差太多 xff0c 所以尽量不要用 xff0c
  • 51单片机+温湿度传感器+proteus仿真

    前段时间老师让提交的工程实训作业 xff0c 本来想用51单片机加DHT11做一个温湿度控制系统 xff0c 结果发现DHT11温湿度传感器情况下怎么也不好用 xff0c 从网上找了老多资料 xff0c 还是不行 xff0c 所以果断放弃
  • Linux网络编程项目---网络词典(带源码)

    源代码 xff1a https wwz lanzouq com iPsJ706ghzhc 1 包含的文件 client span class token operator span span class token operator spa
  • 四、stm32-USART串口通讯(重定向、接发通信、控制LED亮灭)

    目录 一 固件库模板二 准备资料三 STM32串口通讯1 STM32的USART 简介2 USART 功能框图2 1 数据寄存器2 2 控制器2 3 发送器2 4 接收器2 5 小数波特率生成 3 校验控制3 1 中断控制 4 USART
  • STM32软件模拟iic驱动oled(显示汉字,图片)(二)

    在上一篇介绍的软件模拟iic及iic源码后 xff0c 今天来实现显示汉字与图片以及各个函数的介绍 一 函数介绍及使用 1 显示字符 OLED ShowStr unsigned char x unsigned char y unsigned