STM32之在oled上实现文字滚动
本文内容:本文主要介绍怎么通过单片机控制7针的oled上实现文字滚动。
一、oled与SPI简介
(一)oled简介
有机发光二极管(OrganicLight-Emitting Diode,OLED),又称为有机电激光显示、有机发光半导体(OrganicElectroluminescence Display,OLED),是指有机半导体材料和发光材料在电场驱动下,通过载流子注入和复合导致发光的现象。
(二)SPI协议
7针oled需要用到SPI协议
SPI 协议是由摩托罗拉公司提出的通讯协议(Serial Peripheral Interface),即串行外围设备接口,是一种高速全双工的通信总线。它被广泛地使用在 ADC、LCD 等设备与 MCU 间,
要求通讯速率较高的场合。
SPI物理层
SPI通讯使用 3 条总线及片选线,3条总线分别为 SCK、MOSI、MISO
SPI协议层
与 I2C的类似,SPI协议定义了通讯的起始和停止信号、数据有效性、时钟同步等环节。
SPI通信时序
二、获取自模
下载字模软件PCtoLCD
字模软件PCtoLCD
打开后先进行设置,如下图:
输入想要获取的文字,点击生成字模,下面会出现字码
三、oled主要代码
主函数
#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); //开启滚动while(1) {}
}
输出文字代码
void TEST_MainPage(void)
{ GUI_ShowCHinese(10,20,16,"小张从未入门",1);GUI_ShowString(4,48,"631904110130",16,1);delay_ms(1500); delay_ms(1500);
}
添加的字模代码
字模在oledfont.c文件中
"小",0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x11,0x10,0x11,0x08,0x11,0x04,0x21,0x04,0x21,0x02,0x41,0x02,0x81,0x02,0x01,0x00,0x01,0x00,0x05,0x00,0x02,0x00,/*"小",0*/"张",0x01,0x00,0xF9,0x08,0x09,0x08,0x09,0x10,0x09,0x20,0x79,0x40,0x41,0x00,0x47,0xFE,0x41,0x40,0x79,0x20,0x09,0x20,0x09,0x10,0x09,0x08,0x09,0x44,0x51,0x82,0x21,0x00,/*"张",1*/"从",0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x50,0x14,0x50,0x12,0x50,0x12,0x88,0x20,0x88,0x21,0x04,0x42,0x04,0x84,0x02,/*"从",2*/"未",0x01,0x00,0x01,0x00,0x01,0x00,0x3F,0xF8,0x01,0x00,0x01,0x00,0x01,0x00,0xFF,0xFE,0x03,0x80,0x05,0x40,0x09,0x20,0x11,0x10,0x21,0x08,0xC1,0x06,0x01,0x00,0x01,0x00,/*"未",3*/"入",0x04,0x00,0x02,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x02,0x80,0x02,0x80,0x02,0x80,0x04,0x40,0x04,0x40,0x08,0x20,0x08,0x20,0x10,0x10,0x20,0x10,0x40,0x08,0x80,0x06,/*"入",4*/"门",0x20,0x00,0x13,0xFC,0x10,0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x14,0x40,0x08,/*"门",5*/
四、运行效果
连线如下
// OLED模块 STM32单片机
// VCC 接 DC 5V/3.3V //OLED屏电源正
// GND 接 GND //OLED屏电源地
//=======================================液晶屏数据线接线==========================================//
//本模块默认数据总线类型为4线制SPI
// OLED模块 STM32单片机
// D1 接 PB15 //OLED屏SPI写信号
//=======================================液晶屏控制线接线==========================================//
// OLED模块 STM32单片机
// CS 接 PB11 //OLED屏片选控制信号
// RES 接 PB12 //OLED屏复位控制信号
// DC 接 PB10 //OLED屏数据/命令选择控制信号
// D0 接 PB13 //OLED屏SPI时钟信号
运行效果如图
五、总结
本文的代码使用的其他大佬的代码改的,主要加了一些自己用到的字模,这次用到的是7针的oled的SPI协议,与4针的oled有所不同,4针为I2C的协议。oled里面的函数需要根据用到的字长和想要的位置进行相应的参数更改,否则可能达不到想要的效果。
六、参考文章
0.96寸OLED在STM32f103上实现滚动显示长字符
基于SPI通信方式的OLED显示
完整代码
STM32之在oled上实现文字滚动相关推荐
- 关于qt 实现laber上面的文字滚动
写代码前.首先我们肯定要新建一个项目. 1.点击文件新建文件或项目 2.选择带界面的.名称自己写.然后继承widget.完成 3.这样,我们就得到了一个空的gui项目了. 新建一个能实现文字滚动的头. ...
- STM32小项目之dht11在oled上显示温湿度
前言: 实现一个简单的功能,最终多个功能合起来,就是一个大项目,也叫模块化编程:本篇文章不在讲述oled的用法和代码,因为代码太多了,粘不过来,需要的可以去看我另一篇文章专门讲解oled的. 本文牵扯 ...
- STM32如何在LCD上显示单词、文字、图片等
本文将介绍STM32F103R6如何在LCD12864上显示文字图片 注:本文中用到的字模软件,我放在了文章末尾,点击链接即可下载,是绿色版软件,解压即可使用! 点击下载LCD12864上显示文字图片 ...
- STM32读取DS18B20温度,并在OLED上显示
部分代码来源于网络,侵权删 本文使用硬件:STM32F103C8T6最小系统板.IIC协议0.96寸OLED屏幕显示.DS18B20传感器 实现功能:在OLED上显示出DS18B20采集到的温度,精确 ...
- 在OLED上显示各种各样的数据(文字、字母、图片)
今天来说一说OLED,也同时记录一下成果. 在学习OLED之前需要知道IIC协议,不了解的可以看(IIC协议相关_dxdlnu的博客-CSDN博客) 什么是OLED? OLED_百度百科 (baidu ...
- php页头滚动文字公告,jQuery公告栏文字滚动插件
jQue作一新求抖直微圈ry插件 关于jQue作一新求抖直微圈ry插件,http://www.cnblogs.com/ajianbeyourself/p/5815689.html 这篇文章写得真心不错 ...
- html图片加滚动文字,滚动文字、图片等html代码
1.代码: 我是nancy 2.各参数详解: a)scrollAmount.它表示速度,值越大速度越快.如果没有它,默认为6,建议设为1-3比较好. b)width和height,表示滚动区域的大小, ...
- html marquee css,HTML之marquee(文字滚动)详解_html/css_WEB-ITnose
语法: 以下是一个最简单的例子: 代码如下: Hello, World 下面这两个事件经常用到: onMouseOut="this.start()" :用来设置鼠标移出该区域时继续 ...
- html 滚动字幕如何设置,Html 文字滚动
滚动字幕会让很多人感到兴奋,特别是第一次使用滚动字幕时,会爱不释手.现在做一个详细的方案,让你更全面地了解一下. 滚动字幕在FrontPage的组件里有,但是FrontPage这个软件只能支持单行文字 ...
最新文章
- FPGA之道(77)静态时序分析(三)同步时序逻辑的分析原理
- docker ps 列出容器 命令简介
- 【小白学习tensorflow教程】四、使用 tfhub中的模型EfficientDet-Lite2 进行对象检测
- 前端学习(2703):重读vue电商网站24之配置axios
- 深入理解ES6之迭代器与生成器
- Flink State 最佳实践
- linux环境发送中文失败,linux - 无法从linux命令发送邮件 - SO中文参考 - www.soinside.com...
- C语言指针变量--图示易懂
- 【白皮书分享】人工智能“新基建”发展白皮书.pdf(附下载链接)
- 特斯拉中国工厂2020投产,还可能为完全自动驾驶更新硬件
- 如何删掉oracle服务,oracle留下的服务如何删除啊
- php是什么币种的外汇英文,外汇币种英文_我要最常用的10个外汇币种和英文简称!_合拍网...
- 分布式任务调度相关介绍
- 深入分析redis之rax底层原理,前缀树?
- pdf文件拆分为单个pdf_如何根据文件内容拆分重命名移动一批PDF文件
- CSS总结1-来自freecode
- 读书笔记之一平米健身:硬派健身
- PLY格式介绍与读取
- 为什么说入职国企也能越混越好?局外人不懂,内行人明白这4点
- 第一天-网络设备安全操作知识
热门文章
- AWS和一级方程式宣布 2020赛季新的赛车表现统计数据
- 企业邮箱网易163购买注意事项
- 巴旦木树苗移栽方法丨巴旦木苗木种植技巧
- android 近场通信,Android NFC近场通信03----读写MifareClassic卡(示例代码)
- 使用openpyxl玩转excel数据
- uncertain temporal knowledge graph论文解读
- 大疆 DJI SDK 开发介绍
- 《SaltStack技术入门与实践》—— 实践案例 中小型Web架构3 Memcached配置管理
- 视频教程-《2048》-UGUI搞定2D游戏研发-Unity3D
- skywalking9.2