基于STM32实现OLED滚动显示
基于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滚动显示相关推荐
- 基于stm32的OLED显示屏显示
文章目录 一.内容 二.关于SPI 三.关于OLED 四.功能实现 1)实验准备 2)代码准备 1.显示学号和姓名 2.显示AHT20的温度和湿度 3.滑动显示长字符 3)结果展示 五.参考内容 六. ...
- 基于STM32的OLED多级菜单GUI实现(简化版智能手表)
前言:本文的OLED多级菜单UI为一个综合性的STM32小项目,使用多传感器与OLED显示屏实现智能终端的效果.项目中的多级菜单UI使用了较为常见的结构体索引法去实现功能与功能之间的来回切换,搭配DH ...
- 【嵌入式】STM32基于SPI通信协议OLED屏显示
STM32基于SPI通信协议OLED屏显示 一.SPI协议和OLED介绍 1.SPI协议介绍 物理层 协议层 2.OLED显示屏介绍 二.显示个人学号姓名实验 1.题目要求 2.代码部分 1.完整代码 ...
- 实验 STM32 基于SPI的OLED屏显示
STM32 基于SPI的OLED屏显示 一.任务要求 二.显示自己的学号和姓名 1.例子程序的改写 (1)下载资料 (2)解压后找到文件,并用KEIL打开. (3)改写程序 2.连接硬件 3.运行结果 ...
- 基于STM32进行OLED显示
目录 一.SPI接口简介 1.SPI的简介 2. SPI 接口4条线通信: 3.SPI的特征 4.接口框图 5.SPI整体的通讯过程 二.OLED的原理 1.OLED模块参数 2.该模块的特点: 3. ...
- 基于STM32的OLED显示
基于STM32的OLED显示 一.什么是OLED 二.了解SPI SPI协议概括 同步串行口 三.学号姓名的显示 1.汉字点阵获取 代码修改 3.硬件连接 4.烧录编译结果 总结 参考文献 一.什么是 ...
- Arduino Nano 驱动OLED滚动显示
尽管Uno R3开发板是Arduino家族中入门级别的首选,但无奈它的体积实在有些大,我们实际中很多设计都需要考虑外形结构,小巧便捷而又功能齐全的Arduino Nano开发板就脱颖而出了.本篇我们使 ...
- 基于STM32的OLED播放Bad apple
基于stm32的oled显示badapple 有屏幕的地方就有bad apple 原理 将视频用opencv转换成图片,之后进行图片取模,转化为16进制,使用oled图片显示函数显示. 硬件所需 st ...
- 基于SPI的OLED温湿度显示
本文首先会简单介绍SPI通信协议,然后后面的实验分为两个板块,一个是OLED屏的使用,另一个是在此基础上,结合上次实验(结尾会附上链接),用OLED屏显示温湿度信息. 实验器材:STM32F103C8 ...
最新文章
- Python使用文本拼图
- 洛谷 P1024 一元三次方程求解
- vue中使用 i18n 遇到的问题
- What is the usage of excludedParameters
- 淘淘商城项目技术点-8:vsftpd
- 错误:created a ThreadLocal with key of type ……but failed to remove it when the web application was sto
- NYOJ954--N的阶乘的二进制表示最低位的1的位置
- 人工智能与大数据的区别
- arcengine cliasic code(转)基于ArcGIS Engine + C#实现用户自定义动态电力符号
- Intellij Error:java: Compilation failed: internal java compiler error
- 读hzk32_点阵字库HZK12 HZK16 HZK24 ASC12 ASC16 简介 及 使用方法[附源码]
- 获取HTML页面的所有图片地址
- Maven使用Profile
- 安卓系统安全学习小结(二)
- ArcGIS绘制全国数据图步骤及注意事项
- ExtJs4 Ext.tab.Panel 选项卡
- 【数据库】ALTER TABLE 语句与 CHECK 约束““冲突。该冲突发生于数据库““,表““, column ‘‘
- 让Mplayer或SMplayer成为网络电视客户端(安装Mplayer以Fedora为例)
- 突破效能瓶颈,详解价值流分析的五大流动指标|研发管理干货
- 202. 阿里Pandora Boot