基于STM32实现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);        //开启滚动

一、文字取模

获取对应的16进制点阵表示

插入oledfont.h中

"今",0x01,0x00,0x01,0x00,0x02,0x80,0x04,0x40,0x08,0x20,0x12,0x10,0x21,0x08,0xC1,0x06,
0x00,0x00,0x1F,0xF0,0x00,0x10,0x00,0x20,0x00,0x20,0x00,0x40,0x00,0x80,0x01,0x00,/*"今",0*/"晚",0x00,0x80,0x00,0x80,0x79,0xF8,0x4A,0x08,0x4C,0x10,0x4B,0xFC,0x4A,0x44,0x7A,0x44,
0x4A,0x44,0x4B,0xFC,0x48,0xA0,0x48,0xA0,0x79,0x22,0x49,0x22,0x02,0x1E,0x04,0x00,/*"晚",1*/"月",0x00,0x00,0x1F,0xF8,0x10,0x08,0x10,0x08,0x10,0x08,0x1F,0xF8,0x10,0x08,0x10,0x08,
0x10,0x08,0x1F,0xF8,0x10,0x08,0x10,0x08,0x20,0x08,0x20,0x08,0x40,0x28,0x80,0x10,/*"月",2*/"色",0x08,0x00,0x08,0x00,0x1F,0xE0,0x20,0x20,0x40,0x40,0xBF,0xF8,0x21,0x08,0x21,0x08,
0x21,0x08,0x3F,0xF8,0x20,0x00,0x20,0x02,0x20,0x02,0x20,0x02,0x1F,0xFE,0x00,0x00,/*"色",3*/"真",0x01,0x00,0x01,0x00,0x7F,0xFC,0x01,0x00,0x1F,0xF0,0x10,0x10,0x1F,0xF0,0x10,0x10,
0x1F,0xF0,0x10,0x10,0x1F,0xF0,0x10,0x10,0xFF,0xFE,0x08,0x20,0x10,0x10,0x20,0x08,/*"真",4*/"美",0x08,0x20,0x04,0x40,0x7F,0xFC,0x01,0x00,0x01,0x00,0x3F,0xF8,0x01,0x00,0x01,0x00,
0xFF,0xFE,0x01,0x00,0x01,0x00,0x7F,0xFC,0x02,0x80,0x04,0x40,0x18,0x30,0xE0,0x0E,/*"美",5*/

二、代码修改

text.c 中的

void TEST_MainPage(void)
{   GUI_ShowCHinese(10,20,16,"今晚月色真美",1);delay_ms(1500);      delay_ms(1500);
}

主函数main

#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(0x29,OLED_CMD);        //水平垂直和水平滚动左右 29/2aOLED_WR_Byte(0x00,OLED_CMD);        //虚拟字节OLED_WR_Byte(0x00,OLED_CMD);        //起始页 0OLED_WR_Byte(0x07,OLED_CMD);        //滚动时间间隔OLED_WR_Byte(0x07,OLED_CMD);        //终止页 1OLED_WR_Byte(0x01,OLED_CMD);              //垂直滚动偏移量TEST_MainPage();       OLED_WR_Byte(0x2F,OLED_CMD);        //开启滚动while(1)
{}
}

三、硬件连接加结果

OLEDM模块 STM32单片机
VCC DC 5V/3.3V
GND GND
D1 PB15
CS PB11
RES PB12
DC PB10
D0 PB13

总结

以上就是本次实验的内容,实现OLED的滚动显示

参考文献

0.96寸OLED 在STM32实现滚动显示

基于STM32实现OLED滚动显示相关推荐

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

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

  2. 基于STM32的OLED多级菜单GUI实现(简化版智能手表)

    前言:本文的OLED多级菜单UI为一个综合性的STM32小项目,使用多传感器与OLED显示屏实现智能终端的效果.项目中的多级菜单UI使用了较为常见的结构体索引法去实现功能与功能之间的来回切换,搭配DH ...

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

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

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

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

  5. 基于STM32进行OLED显示

    目录 一.SPI接口简介 1.SPI的简介 2. SPI 接口4条线通信: 3.SPI的特征 4.接口框图 5.SPI整体的通讯过程 二.OLED的原理 1.OLED模块参数 2.该模块的特点: 3. ...

  6. 基于STM32的OLED显示

    基于STM32的OLED显示 一.什么是OLED 二.了解SPI SPI协议概括 同步串行口 三.学号姓名的显示 1.汉字点阵获取 代码修改 3.硬件连接 4.烧录编译结果 总结 参考文献 一.什么是 ...

  7. Arduino Nano 驱动OLED滚动显示

    尽管Uno R3开发板是Arduino家族中入门级别的首选,但无奈它的体积实在有些大,我们实际中很多设计都需要考虑外形结构,小巧便捷而又功能齐全的Arduino Nano开发板就脱颖而出了.本篇我们使 ...

  8. 基于STM32的OLED播放Bad apple

    基于stm32的oled显示badapple 有屏幕的地方就有bad apple 原理 将视频用opencv转换成图片,之后进行图片取模,转化为16进制,使用oled图片显示函数显示. 硬件所需 st ...

  9. 基于SPI的OLED温湿度显示

    本文首先会简单介绍SPI通信协议,然后后面的实验分为两个板块,一个是OLED屏的使用,另一个是在此基础上,结合上次实验(结尾会附上链接),用OLED屏显示温湿度信息. 实验器材:STM32F103C8 ...

最新文章

  1. Python使用文本拼图
  2. 洛谷 P1024 一元三次方程求解
  3. vue中使用 i18n 遇到的问题
  4. What is the usage of excludedParameters
  5. 淘淘商城项目技术点-8:vsftpd
  6. 错误:created a ThreadLocal with key of type ……but failed to remove it when the web application was sto
  7. NYOJ954--N的阶乘的二进制表示最低位的1的位置
  8. 人工智能与大数据的区别
  9. arcengine cliasic code(转)基于ArcGIS Engine + C#实现用户自定义动态电力符号
  10. Intellij Error:java: Compilation failed: internal java compiler error
  11. 读hzk32_点阵字库HZK12 HZK16 HZK24 ASC12 ASC16 简介 及 使用方法[附源码]
  12. 获取HTML页面的所有图片地址
  13. Maven使用Profile
  14. 安卓系统安全学习小结(二)
  15. ArcGIS绘制全国数据图步骤及注意事项
  16. ExtJs4 Ext.tab.Panel 选项卡
  17. 【数据库】ALTER TABLE 语句与 CHECK 约束““冲突。该冲突发生于数据库““,表““, column ‘‘
  18. 让Mplayer或SMplayer成为网络电视客户端(安装Mplayer以Fedora为例)
  19. 突破效能瓶颈,详解价值流分析的五大流动指标|研发管理干货
  20. 202. 阿里Pandora Boot

热门文章

  1. 疫情环境下,技术团队居家办公实践
  2. 落地的一瞬间,陆涛一口鲜血吐了出来
  3. linux命令 Vi编辑器的使用
  4. python输出生日程序_python学习5--生成日期/生日
  5. 爱奇艺阅读怎么自动翻页
  6. PHP实现二维数组转字符串
  7. 关于勒索病毒[help-decipher@bitmessage.ch].HRM
  8. 香水喷到哪里才让人神魂颠倒呢?
  9. PTA 1025 反转链表 (18/25分) + 测试点解决
  10. Nuitka 为 exe 设置图标、压缩体积、去掉黑框