文章目录

  • 一.OLED屏滚动显示命令
  • 二.对将要显示的汉字进行取模
  • 三.实现代码
  • 四.总结
  • 五.参考链接

一.OLED屏滚动显示命令

水平向左向右滚动

OLED_WR_Byte(0x2E,OLED_CMD);        //关闭滚动
OLED_WR_Byte(0x26,OLED_CMD);        //水平向左或者右滚动 26/27
OLED_WR_Byte(0x00,OLED_CMD);        //虚拟字节
OLED_WR_Byte(0x00,OLED_CMD);        //起始页 0
OLED_WR_Byte(0x07,OLED_CMD);        //滚动时间间隔
OLED_WR_Byte(0x07,OLED_CMD);        //终止页 7
OLED_WR_Byte(0x00,OLED_CMD);        //虚拟字节
OLED_WR_Byte(0xFF,OLED_CMD);        //虚拟字节
OLED_WR_Byte(0x2F,OLED_CMD);        //开启滚动

垂直滚动

OLED_WR_Byte(0x2e,OLED_CMD);        //关闭滚动
OLED_WR_Byte(0x29,OLED_CMD);        //水平垂直和水平滚动左右 29/2a
OLED_WR_Byte(0x00,OLED_CMD);        //虚拟字节
OLED_WR_Byte(0x00,OLED_CMD);        //起始页 0
OLED_WR_Byte(0x07,OLED_CMD);        //滚动时间间隔
OLED_WR_Byte(0x07,OLED_CMD);        //终止页 1
OLED_WR_Byte(0x01,OLED_CMD);        //垂直滚动偏移量
OLED_WR_Byte(0x2F,OLED_CMD);        //开启滚动

更多命令请参考:https://blog.csdn.net/qq_43279579/article/details/111500137

二.对将要显示的汉字进行取模

显示:昨夜西风凋碧树,独上高楼,望尽天涯路。

推荐工具:

链接:https://pan.baidu.com/s/1EInMlOq8J4y0kcXMPFYUGQ
提取码:1234

使用汉字取模工具获取16*16点阵

点阵内容:

{0x01,0x01,0x79,0x49,0x4A,0x4A,0x4C,0x78,0x48,0x48,0x48,0x48,0x78,0x48,0x00,0x00},
{0x00,0x00,0x00,0xFE,0x80,0x80,0x80,0xF8,0x80,0x80,0x80,0xFC,0x80,0x80,0x80,0x80},/*"昨",0*/{0x02,0x01,0xFF,0x08,0x08,0x10,0x11,0x31,0x52,0x95,0x11,0x10,0x10,0x10,0x11,0x16},
{0x00,0x00,0xFE,0x80,0x80,0xF8,0x08,0x48,0x28,0x10,0x10,0xA0,0x40,0xA0,0x18,0x06},/*"夜",1*/{0x00,0xFF,0x04,0x04,0x04,0x3F,0x24,0x24,0x24,0x24,0x28,0x30,0x20,0x20,0x3F,0x20},
{0x00,0xFE,0x40,0x40,0x40,0xF8,0x48,0x48,0x48,0x48,0x38,0x08,0x08,0x08,0xF8,0x08},/*"西",2*/{0x00,0x3F,0x20,0x20,0x28,0x24,0x22,0x22,0x21,0x21,0x22,0x22,0x24,0x48,0x40,0x80},
{0x00,0xF0,0x10,0x10,0x50,0x50,0x90,0x90,0x10,0x10,0x90,0x92,0x4A,0x4A,0x06,0x02},/*"风",3*/{0x00,0x47,0x24,0x24,0x05,0x04,0x14,0x17,0x24,0xE5,0x25,0x25,0x25,0x24,0x24,0x08},
{0x00,0xFC,0x44,0x44,0xF4,0x44,0x44,0xFC,0x04,0xF4,0x14,0x14,0xF4,0x04,0x14,0x08},/*"凋",4*/{0x00,0xFE,0x10,0x7C,0x10,0x1E,0xF0,0x00,0x7F,0x04,0x08,0x3F,0xC8,0x08,0x0F,0x08},
{0x20,0x40,0xFC,0x84,0xFC,0x84,0xFC,0x00,0xFC,0x00,0x00,0xF0,0x10,0x10,0xF0,0x10},/*"碧",5*/{0x20,0x20,0x27,0x20,0xF8,0x24,0x22,0x72,0x69,0xA1,0xA2,0x22,0x24,0x28,0x20,0x20},
{0x04,0x04,0x84,0x84,0xBE,0x84,0x84,0xA4,0x14,0x14,0x84,0x84,0x84,0x04,0x14,0x08},/*"树",6*/{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x10,0x20,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*",",7*/{0x00,0x44,0x28,0x11,0x29,0x49,0x89,0x09,0x19,0x29,0x48,0x88,0x08,0x0B,0x51,0x20},
{0x20,0x20,0x20,0xFC,0x24,0x24,0x24,0x24,0xFC,0x24,0x20,0x28,0x24,0xFE,0x02,0x00},/*"独",8*/{0x02,0x02,0x02,0x02,0x02,0x02,0x03,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0xFF,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00},/*"上",9*/{0x02,0x01,0xFF,0x00,0x0F,0x08,0x08,0x0F,0x00,0x7F,0x40,0x4F,0x48,0x48,0x4F,0x40},
{0x00,0x00,0xFE,0x00,0xE0,0x20,0x20,0xE0,0x00,0xFC,0x04,0xE4,0x24,0x24,0xE4,0x0C},/*"高",10*/{0x20,0x21,0x20,0x20,0xFB,0x20,0x21,0x72,0x68,0xA7,0xA0,0x21,0x21,0x20,0x21,0x26},
{0x20,0x24,0xA8,0x20,0xFE,0xA8,0x24,0x02,0x40,0xFE,0x88,0x08,0x90,0x60,0x98,0x04},/*"楼",11*/{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x10,0x20,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*",",12*/{0x10,0x08,0xFF,0x20,0x20,0x26,0x38,0x20,0x01,0x7F,0x01,0x01,0x3F,0x01,0x01,0xFF},
{0x00,0x7C,0x44,0x7C,0x44,0x7C,0x44,0x94,0x08,0xFC,0x00,0x00,0xF8,0x00,0x00,0xFE},/*"望",13*/{0x00,0x1F,0x10,0x10,0x10,0x1F,0x10,0x10,0x10,0x23,0x20,0x40,0x8C,0x03,0x00,0x00},
{0x00,0xF8,0x08,0x08,0x08,0xF8,0x48,0x40,0x20,0x10,0x88,0x06,0x00,0x00,0x80,0x40},/*"尽",14*/{0x00,0x3F,0x01,0x01,0x01,0x01,0xFF,0x01,0x02,0x02,0x04,0x04,0x08,0x10,0x20,0xC0},
{0x00,0xF8,0x00,0x00,0x00,0x00,0xFE,0x00,0x80,0x80,0x40,0x40,0x20,0x10,0x08,0x06},/*"天",15*/{0x00,0x27,0x14,0x14,0x85,0x44,0x44,0x17,0x14,0x24,0xE4,0x25,0x24,0x28,0x2B,0x10},
{0x00,0xFE,0x20,0x20,0xFC,0x20,0x20,0xFE,0x00,0x20,0x20,0xFC,0x20,0x20,0xFE,0x00},/*"涯",16*/{0x00,0x7C,0x44,0x44,0x45,0x7C,0x10,0x10,0x11,0x5C,0x50,0x50,0x50,0x5C,0xE0,0x00},
{0x40,0x40,0x78,0x88,0x50,0x20,0x50,0x88,0x06,0xF8,0x88,0x88,0x88,0x88,0xF8,0x88},/*"路",17*/{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x24,0x24,0x18,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"。",18*/

生成的点阵顺序是从左到右,从上到下,需要转换一下点阵:

"昨",0x01,0x00,0x01,0x00,0x79,0x00,0x49,0xFE,0x4A,0x80,0x4A,0x80,0x4C,0x80,0x78,0xF8,0x48,0x80,0x48,0x80,0x48,0x80,0x48,0xFC,0x78,0x80,0x48,0x80,0x00,0x80,0x00,0x80,/*"昨",0*/"夜",0x02,0x00,0x01,0x00,0xFF,0xFE,0x08,0x80,0x08,0x80,0x10,0xF8,0x11,0x08,0x31,0x48,0x52,0x28,0x95,0x10,0x11,0x10,0x10,0xA0,0x10,0x40,0x10,0xA0,0x11,0x18,0x16,0x06,/*"夜",1*/"西",0x00,0x00,0xFF,0xFE,0x04,0x40,0x04,0x40,0x04,0x40,0x3F,0xF8,0x24,0x48,0x24,0x48,0x24,0x48,0x24,0x48,0x28,0x38,0x30,0x08,0x20,0x08,0x20,0x08,0x3F,0xF8,0x20,0x08,/*"西",2*/"风",0x00,0x00,0x3F,0xF0,0x20,0x10,0x20,0x10,0x28,0x50,0x24,0x50,0x22,0x90,0x22,0x90,0x21,0x10,0x21,0x10,0x22,0x90,0x22,0x92,0x24,0x4A,0x48,0x4A,0x40,0x06,0x80,0x02,/*"风",3*/"凋",0x00,0x00,0x47,0xFC,0x24,0x44,0x24,0x44,0x05,0xF4,0x04,0x44,0x14,0x44,0x17,0xFC,0x24,0x04,0xE5,0xF4,0x25,0x14,0x25,0x14,0x25,0xF4,0x24,0x04,0x24,0x14,0x08,0x08,/*"凋",4*/"碧",0x00,0x20,0xFE,0x40,0x10,0xFC,0x7C,0x84,0x10,0xFC,0x1E,0x84,0xF0,0xFC,0x00,0x00,0x7F,0xFC,0x04,0x00,0x08,0x00,0x3F,0xF0,0xC8,0x10,0x08,0x10,0x0F,0xF0,0x08,0x10,/*"碧",5*/"树",0x20,0x04,0x20,0x04,0x27,0x84,0x20,0x84,0xF8,0xBE,0x24,0x84,0x22,0x84,0x72,0xA4,0x69,0x14,0xA1,0x14,0xA2,0x84,0x22,0x84,0x24,0x84,0x28,0x04,0x20,0x14,0x20,0x08,/*"树",6*/",",0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x10,0x00,0x20,0x00,0x00,0x00,/*",",7*/"独",0x00,0x20,0x44,0x20,0x28,0x20,0x11,0xFC,0x29,0x24,0x49,0x24,0x89,0x24,0x09,0x24,0x19,0xFC,0x29,0x24,0x48,0x20,0x88,0x28,0x08,0x24,0x0B,0xFE,0x51,0x02,0x20,0x00,/*"独",8*/"上",0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x03,0xF8,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0xFF,0xFE,0x00,0x00,/*"上",9*/"高",0x02,0x00,0x01,0x00,0xFF,0xFE,0x00,0x00,0x0F,0xE0,0x08,0x20,0x08,0x20,0x0F,0xE0,0x00,0x00,0x7F,0xFC,0x40,0x04,0x4F,0xE4,0x48,0x24,0x48,0x24,0x4F,0xE4,0x40,0x0C,/*"高",10*/"楼",0x20,0x20,0x21,0x24,0x20,0xA8,0x20,0x20,0xFB,0xFE,0x20,0xA8,0x21,0x24,0x72,0x02,0x68,0x40,0xA7,0xFE,0xA0,0x88,0x21,0x08,0x21,0x90,0x20,0x60,0x21,0x98,0x26,0x04,/*"楼",11*/"望",0x10,0x00,0x08,0x7C,0xFF,0x44,0x20,0x7C,0x20,0x44,0x26,0x7C,0x38,0x44,0x20,0x94,0x01,0x08,0x7F,0xFC,0x01,0x00,0x01,0x00,0x3F,0xF8,0x01,0x00,0x01,0x00,0xFF,0xFE,/*"望",13*/"尽",0x00,0x00,0x1F,0xF8,0x10,0x08,0x10,0x08,0x10,0x08,0x1F,0xF8,0x10,0x48,0x10,0x40,0x10,0x20,0x23,0x10,0x20,0x88,0x40,0x06,0x8C,0x00,0x03,0x00,0x00,0x80,0x00,0x40,/*"尽",14*/"天",0x00,0x00,0x3F,0xF8,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0xFF,0xFE,0x01,0x00,0x02,0x80,0x02,0x80,0x04,0x40,0x04,0x40,0x08,0x20,0x10,0x10,0x20,0x08,0xC0,0x06,/*"天",15*/"涯",0x00,0x00,0x27,0xFE,0x14,0x20,0x14,0x20,0x85,0xFC,0x44,0x20,0x44,0x20,0x17,0xFE,0x14,0x00,0x24,0x20,0xE4,0x20,0x25,0xFC,0x24,0x20,0x28,0x20,0x2B,0xFE,0x10,0x00,/*"涯",16*/"路",0x00,0x40,0x7C,0x40,0x44,0x78,0x44,0x88,0x45,0x50,0x7C,0x20,0x10,0x50,0x10,0x88,0x11,0x06,0x5C,0xF8,0x50,0x88,0x50,0x88,0x50,0x88,0x5C,0x88,0xE0,0xF8,0x00,0x88,/*"路",17*/"。",0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x24,0x00,0x24,0x00,0x18,0x00,0x00,0x00,0x00,0x00,/*"。",18*/

三.实现代码

在显示文字的代码基础上,修改main函数

main.c

#include "delay.h"
#include "sys.h"
#include "oled.h"
#include "gui.h"
#include "test.h"
int main(void)
{   delay_init();                  //延时函数初始化      NVIC_Configuration();        //设置NVIC中断分组2:2位抢占优先级,2位响应优先级     OLED_Init();                     //初始化OLED  OLED_Clear(0);             //清屏(全黑)OLED_WR_Byte(0x2E,OLED_CMD);        //关闭滚动OLED_WR_Byte(0x27,OLED_CMD);        //水平向左或者右滚动 26/27OLED_WR_Byte(0x00,OLED_CMD);        //虚拟字节OLED_WR_Byte(0x00,OLED_CMD);        //起始页 0OLED_WR_Byte(0x07,OLED_CMD);        //滚动时间间隔OLED_WR_Byte(0x07,OLED_CMD);        //终止页 7OLED_WR_Byte(0x00,OLED_CMD);        //虚拟字节OLED_WR_Byte(0xFF,OLED_CMD);        //虚拟字节TEST_MainPage();OLED_WR_Byte(0x2F,OLED_CMD);        //开启滚动
}

修改显示函数TEST_MainPage

void TEST_MainPage(void)
{   GUI_ShowCHinese(10,20,16,"昨夜西风凋碧树,独上高楼,望尽天涯路。欲寄彩笺兼尺素,山水长阔知何处。",1);delay_ms(1500);        delay_ms(1500);
}

运行代码,结果显示:

四.总结

OLED屏滚动显示文字,在直接显示文字的基础上,只需添加滚动命令,只有在汉字取模写点阵时要耗费点功夫,其它过程都比较简单。

五.参考链接

https://blog.csdn.net/qq_43279579/article/details/111500137
完整代码:
https://github.com/Parallel-leaves/oledgundong

OLED滑动显示长字符相关推荐

  1. 基于STM32的0.96OLED基本显示学习,及 上下或左右的滑动显示长字符(使用硬件刷屏模式),OLED显示变量值操作详细解析

    基于STM32的0.96OLED基本显示学习,及 上下或左右的滑动显示长字符(使用硬件刷屏模式),OLED显示变量值操作详细解析 简   介 一.项目说明 二.学习入门 1)开始了解例程 三.实战过程 ...

  2. 【嵌入式系统开发16】基于OLED屏显和汉字点阵编码原理显示姓名学号,湿度温度,滚动长字符

    要求 理解OLED屏显和汉字点阵编码原理,使用STM32F103的SPI或IIC接口实现以下功能: 显示自己的学号和姓名: 显示AHT20的温度和湿度: 上下或左右的滑动显示长字符,比如"H ...

  3. STM32分别实现温湿度的采集和OLED显示屏显示数据

    目录 一.温湿度的采集 1.1了解I2C总线协议 1.2实现AHT20采集程序 二.OLED显示屏显示数据 2.1了解SPI 2.2使用OLED显示 2.2.1实验题目: 2.2.2实验过程 三.总结 ...

  4. 【嵌入式】STM32基于SPI通信协议OLED屏显示

    STM32基于SPI通信协议OLED屏显示 一.SPI协议和OLED介绍 1.SPI协议介绍 物理层 协议层 2.OLED显示屏介绍 二.显示个人学号姓名实验 1.题目要求 2.代码部分 1.完整代码 ...

  5. 基于stm32的OLED显示屏显示

    文章目录 一.内容 二.关于SPI 三.关于OLED 四.功能实现 1)实验准备 2)代码准备 1.显示学号和姓名 2.显示AHT20的温度和湿度 3.滑动显示长字符 3)结果展示 五.参考内容 六. ...

  6. STM32实现OLED屏显示字符串

    目录 一.题目要求 二.关于SPI 三.关于OLED 四.OLED显示姓名学号 1.显示汉字取模 2.程序代码分析如下 3.实验效果展示 五.总结 六.参考链接 一.题目要求 理解OLED屏显和汉字点 ...

  7. 实验 STM32 基于SPI的OLED屏显示

    STM32 基于SPI的OLED屏显示 一.任务要求 二.显示自己的学号和姓名 1.例子程序的改写 (1)下载资料 (2)解压后找到文件,并用KEIL打开. (3)改写程序 2.连接硬件 3.运行结果 ...

  8. 基于STM32的0.96寸OLED屏显示学号姓名和滚动显示

    文章目录 **一.SPI(串行外设接口)** **二.使用0.96寸OLED显示屏显示学号姓名** **三.0.96寸OLED在STM32f103上实现滚动显示长字符** **四.参考资料** 一.S ...

  9. 基于STM32的0.96寸OLED显示屏显示固定数据、滑动数据、温湿度数据

    目录 OLED显示原理 一.实验工具 二.OLED显示固定数据 1.显示数据相关函数 2.main函数 3.总显示函数 4.取字模 5.实现效果如下: 三.OLED实现滑动显示数据 1.添加滑动命令 ...

最新文章

  1. h5支付不能打开支付宝 ios_IOS H5支付调起微信支付宝客户端问题总结
  2. Winform 打包 混淆 自动更新
  3. React开发(138):ant design学习指南之anchor处理
  4. python 金字塔的程序_python生成金字塔
  5. python pso_利用python实现PSO算法优化二元函数
  6. DFA和NFA的区别
  7. ffmpeg系列-视频旋转角度实现
  8. 3 个主流 Java 微服务框架,各有特色
  9. 京津冀辽迎入汛以来最强降雨,四川盆地西部形成暴雨结界
  10. 以寡治众各个击破,超大文件分片上传之构建基于Vue.js3.0+Ant-desgin+Tornado6纯异步IO高效写入服务
  11. PixelLink: Detecting Scene Text via Instance Segmentation算法详解
  12. 电信网通证实台湾地震影响内地访问国际网站(12月27日)
  13. 基于面部表情的情绪识别-论文学习
  14. unity简单小球下落
  15. CSS3 动画实现方法大全
  16. BurpSuite IP代理扩展(IPRotate_Burp_Extension)每次请求切换IP
  17. Android 为摄像头增加闪光灯
  18. “云筑百城”落户苏州,新华三赋能“工业云引擎”
  19. dubbo源码解析-逻辑层设计之服务降级
  20. Windows 防火墙的入站和出站规则说明

热门文章

  1. 【Android】第三方QQ账号登录的实现
  2. 2022.03.23绝世武功
  3. 晶振作为电子产品“心脏”关键部分,究竟是什么原理起到什么作用
  4. 【博学谷学习记录】超强总结,用心分享丨前端开发:BootStrap框架基础用法
  5. 5G时代下,射频器件、PCB等电子元器件产业面临的机遇与挑战
  6. 无线通信基础知识7:射频器件的基本参数3
  7. Number of alive brokers ‘0’ does not meet the required replication factor ‘3’ for the offsets topic
  8. iphone xr xs_等等,是iPhone“ XS”还是iPhone“ Xs”?
  9. 【树莓派学习笔记】树莓派4B上运行uboot并从网络启动linux内核(上)
  10. 如何迁移foxmail中邮件账户下所有邮件(收件箱、发件箱等)