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(显示汉字,图片)(二) 的相关文章

  • 51单片机 数码管中断操作

    实践目的 1 掌握中断的概念和思想 2 掌握51单片机中断系统和相关软硬件设计 实践内容 1 利用单片机的P0口接数码管的字段脚 P1 0脚接共阴极 P3 2 P3 3引脚接独立按键产生外部中断信号 编写程序 当程序正常运行时数码管显示H字
  • 以字符串形式接收数字(uart)

    我正在尝试通过 uart 接收一个包装为字符串的数字 我发送数字 1000 所以我得到 4 个字节 空字符 但是 当我使用 atoi 将数组转换为数字并将整数与 1000 进行比较时 我并不总是得到正确的数字 这是我用于接收号码的中断处理函
  • STM32 F072上的软件如何跳转到bootloader(DFU模式)?

    STM32应用笔记2606对此进行了讨论 但没有简单的代码示例 该答案已使用 IAR EWARM 在 STM32F072 Nucleo 板上进行了测试 这个答案使用 STM32标准外设库 仅此而已 请注意 验证您是否成功进入引导加载程序模式
  • CMSIS 库是否应该包含在版本控制中? [复制]

    这个问题在这里已经有答案了 通常 我曾经在版本控制中包含芯片供应商 ST 提供的设备特定标头和源以及 CMSIS Core 标头 数量不多 也没有更新的习惯 我使用STM32微控制器 但我不使用立方体框架 or the 标准外设库 最近 我
  • 当数据大小较小时,内存到内存 DMA 传输是否需要权衡?

    我正在学习 STM32 F4 微控制器 我正在尝试找出使用 DMA 的限制 根据我的理解和研究 我知道如果数据量较小 即设备使用DMA生成或消耗少量数据 则开销会增加 因为DMA传输需要DMA控制器执行操作 从而不必要地增加系统成本 我做了
  • 134-基于stm32单片机矿井瓦斯天然气浓度温湿度检测自动通风系统Proteus仿真+源程序...

    资料编号 134 一 功能介绍 1 采用stm32单片机 LCD1602显示屏 独立按键 ds1302时钟 DHT11温湿度 电机 蜂鸣器 制作一个基于stm32单片机矿井瓦斯天然气浓度温湿度检测自动通风系统Proteus仿真 2 通过DH
  • 140-基于stm32单片机智能晾衣杆控制系统Proteus仿真+源程序

    资料编号 140 一 功能介绍 1 采用stm32单片机 LCD1602显示屏 独立按键 DHT11传感器 ds1302时钟 光敏传感器 蜂鸣器 LED灯 制作一个基于stm32单片机智能晾衣杆控制系统Proteus仿真 2 通过光敏传感器
  • 138-基于stm32单片机汽车多功能仪表盘显示系统Proteus仿真+源程序

    资料编号 138 一 功能介绍 1 采用stm32单片机 LCD1602显示屏 独立按键 DHT11传感器 ds1302时钟 LED灯 蜂鸣器 电位器 制作一个基于stm32单片机汽车多功能仪表盘显示系统Proteus仿真 2 通过DHT1
  • HAL库STM32常用外设教程(二)—— GPIO输入\输出

    HAL库STM32常用外设教程 二 GPIO输入 输出 文章目录 HAL库STM32常用外设教程 二 GPIO输入 输出 前言 一 GPIO功能概述 二 GPIO的HAl库驱动 三 GPIO使用示例 1 示例功能 四 代码讲解 五 总结
  • STM32超声波——HC_SR04

    文章目录 一 超声波图片 二 时序图 三 超声波流程 四 单位换算 五 取余计算 六 换算距离 七 超声波代码 一 超声波图片 测量距离 2cm 400cm 二 时序图 1 以下时序图要先提供一个至少10us的脉冲触发信号 告诉单片机我准备
  • 毕业设计 江科大STM32的智能温室控制蓝牙声光报警APP系统设计

    基于STM32的智能温室控制蓝牙声光报警APP系统设计 1 项目简介 1 1 系统构成 1 2 系统功能 2 部分电路设计 2 1 stm32f103c8t6单片机最小系统电路设计 2 2 LCD1602液晶显示电路设计 2 2 风
  • [屏驱相关]【SWM166-SPI-Y1.28C1测评】+ 有点惊艳的开箱

    耳闻华芯微特许久了 看到论坛得评测活动赶紧上了末班车 毕竟对有屏幕得板子也是很喜欢得 京东快递小哥客客气气 微笑着把快递给了我 好评 直接拆了包 在此之前没看过视频号 所以这个圆盘盘得模具还是有点惊喜的 正面照如下 开机有灯光秀 还有动画
  • SHT10温湿度传感器——STM32驱动

    实验效果 硬件外观 接线 3 3V供电 IIC通讯 代码获取 查看下方 END
  • HAL 锁定和解锁函数如何使用以及为什么?

    我试图理解另一位程序员编写的代码 它使用了I C http en wikipedia org wiki I C2 B2C通信以将数据写入 STM32 微控制器的 EEPROM 一般来说 我理解他的代码是如何工作的 但我不明白他为什么使用HA
  • 解决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
  • 擦除后无法写入闪存

    所以我不能在擦除后直接写入内部闪存 如果写操作之前没有擦除操作 那么我可以 有什么想法吗 编程函数返回 成功写入 值 但查看内存时 没有写入任何数据 这是代码 uint32 t pageAddress 0x08008000 uint16 t
  • Cortex-M3与M4权威指南

    处理器类型 所有的ARM Cortex M 处理器是32位的精简指令集处理器 它们有 32位寄存器 32位内部数据路径 32位总线接口 除了32位数据 Cortex M处理器也可以有效地处理器8位和16位数据以及支持许多涉及64位数据的操作
  • HAL_Delay() 陷入无限循环

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

随机推荐

  • 虚拟机中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