目录

一、题目要求

二、关于SPI

三、关于OLED

四、OLED显示姓名学号

1、显示汉字取模

2、程序代码分析如下

3、实验效果展示

五、总结

六、参考链接


一、题目要求

理解OLED屏显和汉字点阵编码原理,使用STM32F103的SPI或IIC接口实现以下功能:

1) 显示自己的学号和姓名;

2) 显示AHT20的温度和湿度;

3) 上下或左右的滑动显示长字符,如一段歌词或诗词(最好使用硬件刷屏模式)。

二、关于SPI

SPI是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,越来越多的芯片集成了这种通信协议。

SPI内部结构框图如下

通常SPI通过4个引脚与外部器件相连:
● MISO:主设备输入/从设备输出引脚。该引脚在从模式下发送数据,在主模式下接收数据。
● MOSI:主设备输出/从设备输入引脚。该引脚在主模式下发送数据,在从模式下接收数据。
● SCK:串口时钟,作为主设备的输出,从设备的输入
● NSS:从设备选择。这是一个可选的引脚,用来选择主/从设备。它的功能是用来作为“片
选引脚”,让主设备可以单独地与特定从设备通讯,避免数据线上的冲突。从设备的NSS
引脚可以由主设备的一个标准I/O引脚来驱动。一旦被使能(SSOE位),NSS引脚也可以作为
输出引脚,并在SPI处于主模式时拉低;此时,所有的SPI设备,如果它们的NSS引脚连接
到主设备的NSS引脚,则会检测到低电平,如果它们被设置为NSS硬件模式,就会自动进
入从设备状态。当配置为主设备、NSS配置为输入引脚(MSTR=1,SSOE=0)时,如果NSS
被拉低,则这个SPI设备进入主模式失败状态:即MSTR位被自动清除,此设备进入从模式

SPI总线传输过程 

· 主机先将NSS信号拉低,这样保证开始接收数据;

·接收端检测到时钟的边沿信号时,它将立即读取数据线上的信号,这样就得到了一位数据(1bit);

· 主机发送到从机时:主机产生相应的时钟信号,然后数据一位一位地将从MOSI信号线上进行发送到从机;

· 主机接收从机数据:如果从机需要将数据发送回主机,则主机将继续生成预定数量的时钟信号,并且从机会将数据通过MISO信号线发送;

具体框图如下

三、关于OLED

 OLED(Organic Light-Emitting Diode),又称为有机电激光显示、有机发光半导体(Organic Electroluminescence Display,OLED)。OLED属于一种电流型的有机发光器件,是通过载流子的注入和复合而致发光的现象,发光强度与注入的电流成正比。OLED在电场的作用下,阳极产生的空穴和阴极产生的电子就会发生移动,分别向空穴传输层和电子传输层注入,迁移到发光层。当二者在发光层相遇时,产生能量激子,从而激发发光分子最终产生可见光。

接口定义

图 2

1、本模块支持IIC、3线制SPI以及4线制SPI接口总线模式切换(如图2红框内所示),具体说明如下:
A、使用4.7K电阻只焊接R3、R4,则选择4线制SPI总线接口(默认);
B、使用4.7K电阻只焊接R2、R3,则选择3线制SPI总线接口;
C、使用4.7K电阻只焊接R1、R4、R6、R7、R8,则选择IIC总线接口;
2、接口总线模式切换后,需要选择相应配套的软件和相应的接线引脚(如图1所示),模块才能正常运行。相应的接线引脚说明如下:
A、选择4线制SPI总线接口,所有的引脚都需要使用
B、选择3线制SPI总线接口,只有DC引脚不需要使用(可以不接),其他引脚都需要使用;
C、选择IIC总线接口,只需要使用GND、VCC、D0、D1这四个引脚,同时将RES接高电平(可以接VCC),DC和CS接电源地;

模块引脚说明 

更多详细资料前往:0.96inch SPI OLED Module

 四、OLED显示姓名学号

1、显示汉字取模

通过取模软件将需要OLED显示的汉字或图片转化为16进制

取模软件链接如下:0.96inch SPI OLED Module

汉字取模软件设置如下:

对于字模生成流程如下:

至此汉字取模成功.

2、程序代码分析如下

my_Test();                 //学号姓名字符串显示函数

GUI_ShowString(50,0,"JAY",16,1);               字符显示函数

GUI_ShowCHinese(45,24,16,"周杰伦",1);     汉字显示函数

void my_Test(void)
{GUI_ShowString(50,0,"JAY",16,1);GUI_ShowCHinese(45,24,16,"周杰伦",1);//GUI_ShowString(40,32,"64X128",16,1);GUI_ShowString(15,48,"123456789",16,1);//GUI_ShowString(4,48,"www.lcdwiki.com",16,1);delay_ms(1500);       delay_ms(1500);
}

汉字字模存储数组

主函数main.c

程序过程文件传送门:工程代码

功能实现:显示姓名学号后刷屏显示一段歌词

int main(void)
{   delay_init();                  //延时函数初始化      NVIC_Configuration();        //设置NVIC中断分组2:2位抢占优先级,2位响应优先级     OLED_Init();                     //初始化OLED  OLED_Clear(0);             //清屏(全黑)while(1) { my_Test();               //学号姓名字符串显示OLED_Clear(0);           //刷屏my_Test_v2();            //显示一段歌词OLED_Clear(0);           //刷屏}
}

3、实验效果展示

OLED显示

五、总结

通过OLED显示实验基本掌握了SPI通信协议和软件取字模转化为16进制,总体来说,本实验是一个非常有趣的实验,可以通过OLED显示自己喜欢的图片和文字。

取字模的时候,注意字模的格式,前缀后缀不要忘记更改,以及取模走向和自定义格式等。

六、参考链接

【嵌入式16】STM32+OLED屏显应用实例

SPI协议详解(图文并茂+超详细)

基于STM32的0.96寸OLED显示屏显示数据

STM32实现OLED屏显示字符串相关推荐

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

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

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

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

  3. esp32 spi 驱动 oled 屏显示来自 PC 的画面

    esp32 spi 驱动 oled 屏显示来自 PC 的画面 实验代码 gayhub 实验源码 设备及运行环境 装有python的电脑 Python 3.8.2 (tags/v3.8.2:7b3ab5 ...

  4. esp32使用MicroPython驱动oled屏显示中文和英文

    文章目录 esp32使用MicroPython驱动oled屏显示中文和英文 介绍 安装 特点 开源 硬件连接 API 示例 显示英文字符 显示汉字 参考链接 esp32使用MicroPython驱动o ...

  5. 用STM32F103达成基于I2C协议的AHT20温湿度传感器和OLED屏显示汉字

    目录 一 I2C协议简介 硬件I2C与软件I2C 二 代码和ATH20芯片实现温湿度的串口显示 三 用stm32f103芯片的SPI和IIC接口接上OLED屏显示中文姓名温湿度 1 先用文字字模生成器 ...

  6. 基于STM32实现OLED滚动显示

    基于STM32实现OLED滚动显示 滚动方式 水平滚动 水平加垂直滚动 一.文字取模 二.代码修改 三.硬件连接加结果 总结 参考文献 滚动方式 水平滚动 OLED_WR_Byte(0x2E,OLED ...

  7. 基于STM32F4 的OLED屏显示噪点、花屏问题

    现象 在实现OLED屏显示 内容时,屏幕会出现噪点:多点亮一些点位,使要显示的内容不能辨识. 原因 1.可能是因为当前io配置频率过高 2.延时时间太短 解决方法 方法1.更换io管脚为可高频io 例 ...

  8. ESP32-CAM拍照输出RGB565数据,wifi传输到stm32控制tft屏显示拍照图像

    ESP32-CAM拍照输出RGB565数据,wifi传输到stm32控制tft屏显示拍照图像 拍照采用安信可的ESP32-CAM,显示屏采用2.2寸,TFT SPI 240x320屏幕,使用stm32 ...

  9. msp430f5529——OLED屏显示文字与图片

    目录 前言 一.效果展示 二.步骤 1.OLED.C文件 2.OLED.h文件 3.OLEDFONT.h文件 4.type.h文件 5.bmp.h文件 6.main.c 7.关于文字和图片的取模 总结 ...

最新文章

  1. python微信红包代码_有了这个再也不担心任何微信红包,Python就是好用
  2. 路由器是如何实现数据包的传送?—Vecloud微云
  3. Spring Remoting: Hessian--转
  4. Java11 新特性
  5. Oracle入门(五)之基本命令操作
  6. 活跃用户数怎么计算_【数据运营】|如何做好活跃用户的运营?
  7. TensorFlow 教程 --新手入门--1.5 基本使用
  8. LAMP 补充----非原创
  9. python是什么意思中文、好学吗-Python的前景和Python好不好学呢?
  10. 苹方字体 for linux,苹果苹方字体
  11. 南信大 计算机与软件学院 校花,美哭了!南京12所高校最美“校花”新鲜出炉!颜值爆表!你的母校上榜了吗?...
  12. Ubuntu论坛的开通
  13. 语音验证码与语音验证码APISDK接口
  14. 如何将word一键导入PPT并对内容格式批量修改
  15. UnityShader入门精要-屏幕后处理效果 亮度饱和度对比度、边缘检测、高斯模糊、bloom效果、运动模糊
  16. Linux平台上DPDK入门指南(二)
  17. 3D激光雷达SLAM算法学习02——3D激光雷达传感器
  18. 悲观锁与乐观锁的区别 和 Redis中的watch
  19. Gitlab安装使用及汉化配置
  20. 基于单片机的环境监测调节系统设计(#0516)

热门文章

  1. 【路径规划】基于matlab汽车零部件循环取货路径优化(三维装载约束)【含Matlab源码 1100期】
  2. 视频!ASP.NET MVC 音乐商店 - 1 创建项目 2 控制器
  3. 基于Hutools图片上传下载
  4. saved_model_cli的使用
  5. c#背单词小程序视频_C#用timer实现背单词小程序
  6. 关于安卓智能设备重力传感器检测重力加速度
  7. 阿里巴巴Java社招五面(已offer)面经,我自己都没有想到我会过
  8. ELF文件-逆向工具
  9. 【2023新】华为OD机试 - 绘图机器(Python)
  10. 【PS】数码绘画人像终极笔刷套件