目录
(3) 再在test.c中对函数Test_MainPage进行修改
(2)在bsp_i2c.c中重新写入函数read_AHT20
(2) 再在test.c中对函数Test_MainPage进行修改
一、SPI协议的介绍
1.概述
SPI总线是一种4线总线,因其硬件功能很强,所以与SPI有关的软件就相当简单,使中央处理器(Central Processing Unit,CPU)有更多的时间处理其他事务。正是因为这种简单易用的特性,越来越多的芯片集成了这种通信协议,比如AT91RM9200。SPI是一种高速、高效率的串行接口技术。通常由一个主模块和一个或多个从模块组成,主模块选择一个从模块进行同步通信,从而完成 数据的交换。SPI是一个环形结构,通信时需要至少4根线(事实上在单向传输时3根线也可以)。
2.特点
SPI的特点包括:
1).采用主-从模式(Master-Slave) 的控制方式
2).采用同步方式(Synchronous)传输数据
3).数据交换(Data Exchanges)
4).SPI只有主模式和从模式之分
3.通信原理
它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)。也是所有基于SPI的设备共有的,它们是MISO(主设备数据输入)、MOSI(主设备数据输出)、SCLK(时钟)、CS(片选)。
(1)MISO– Master Input Slave Output,主设备数据输入,从设备数据输出;
(2)MOSI– Master Output Slave Input,主设备数据输出,从设备数据输入;
(3)SCLK – Serial Clock,时钟信号,由主设备产生;
(4)CS – Chip Select,从设备使能信号,由主设备控制。
4.通讯过程
如果 CPOL=0,串行同步时钟的空闲状态为低电平;如果 CPOL=1,串行同步时钟的空闲状态为高电平。
MOSI 与 MISO 的信号只在 SSEL 为低电平的时候才有效,在 SCK 的每个时钟周期 MOSI 和 MISO 传输一位数据。
二、OLED的介绍
1.概述
OLED(Organic Light-Emitting Diode),又称为有机电激光显示、有机发光半导体(Organic Electroluminescence Display,OLED)。OLED属于一种电流型的有机发光器件,是通过载流子的注入和复合而致发光的现象,发光强度与注入的电流成正比。OLED在电场的作用下,阳极产生的空穴和阴极产生的电子就会发生移动,分别向空穴传输层和电子传输层注入,迁移到发光层。当二者在发光层相遇时,产生能量激子,从而激发发光分子最终产生可见光。
2.优点及实物图
(1)功耗低
(2)响应速度快
(3)较宽的视角
(4)能实现高分辨率显示
(5)宽温度特性
(6)OLED能够实现软屏
(7)OLED成品的质量比较轻
3.电路图以及接法
三、用OLED显示姓名学号
1.解压得到的字模点阵生成软件
2.将自己的名字生成相关点阵
(1)新建图像
(2)在文字输入区输入名字
(3) 选择取模方式(C51)
(4)参数设置
点击参数设置中的其它选项,选择横向取模
3.打开项目修改代码
(1)找到项目中oledfont.h
(2)在cfont16数组中添加自己的名字
(3) 再在test.c中对函数Test_MainPage进行修改
(4)主函数的修改
(5)编译并生成hex文件
4.烧录
5.调试运行结果
四、用OLED显示温度湿度
1.将相关文字生成点阵
与上面步骤相同
2.进入项目修改代码
(1)找到项目中oledfont.h
增添所需文字点阵
(2)在bsp_i2c.c中重新写入函数read_AHT20
(3) main.c改成如下代码
3.编译生成hex文件
4.烧录
5.调试运行
五、用OLED流动显示一串字符
1.将相关文字生成点阵
与上面步骤同理
2. 打开项目修改代码
(1)找到项目中oledfont.h并添加相应文字
(2) 再在test.c中对函数Test_MainPage进行修改
(3)修改主函数
添加相应的OLED滚动代码:
删除while内的函数Test_MainPage
(4)编译并生成hex文件
3.烧录
4.调试结果
六、心得总结
经过此次实验,我掌握了除去hal库的其他方法实现,当然hal库也可以实现上述的各种操作,这还是需要我去学习掌握的。然后对于AHT20温湿度传感器的使用电压必须要达到5v才可以工作,当时做实验就是没有注意这点,接的是3.3v电压,导致温度湿度都是零。还有就是对于oled屏的工作原理了解得不是很清楚,只知道简单的接法,当然显示屏就是知道怎么使用就行。对于如何生成字符点阵也有了一个认识,学会了怎么让字符串滚动起来。总之,嵌入式系统的学习还是非常有趣的,也让自己的动手能力有了较大提升。
七、参考博客
基于STM32的0.96寸OLED显示屏显示数据_HarrietLH的博客-CSDN博客