嵌入式STM32深入之基于IIC和SPI协议的OLED显示

一、前言

结合上次实验,我们学习了定时器的相关操作,进行了定时器的通过定时器的方式实现时间的精准控制,定时完成了点灯和PWM脉冲调制,并且我们介绍深入的第一个实验就是使用外设(外部传感器)进行利用简单的温度传感器采集温度
接下来我们学习第二个实验,利用OLED显示屏进行显示。具体实现进行一下实验:

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

  1. 显示自己的学号和姓名;
  2. 显示AHT20的温度和湿度;
  3. 上下或左右的滑动显示长字符,比如“Hello,欢迎来到物联网205实训室!”或者一段歌词或诗词(最好使用硬件刷屏模式)。

二、SPI协议

**SPI(Serial Peripheral interface)**是串行外围设备接口。串行总线技术可以使系统的硬件设计大大简化、系统的体积减小、可靠性提高。同时系统的更改和扩充极为容易。SPI是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为 PCB 的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议,STM32 也有 SPI 接口。
常用的串行扩展总线有:I2C(Inter IC Bus)总线、单总线(1-WIRE BUS)、SPI(Serial Peripheral Interface)总线及Microwire/PLUS等。

(一)SPI介绍

SPI总线是微控制器四线的外部总线。SPI没有明文标准,是一种事实总线,对通信操作的实现由芯片厂商和驱动开发者通过data sheet和application notes沟通实现的细节。SPI是四根信号线协议,如下:
在这里插入图片描述
SCLK:Serial Clock(Output from master);
时钟信号,由主设备产生。
MOSI:Master Output Slave Input(Outpt from Master);
主设备数据输出,从设备数据输入。
MISO:Master Input Slave Output(Output from Slave);
主设备数据输入,从设备数据输出。
CS:Slave Select(Active low,Output from Master);
从设备片选信号,由主设备控制。

SPI 主要特点有:
可以同时发出和接收串行数据;可以当作主机或从机工作;提供频率可编程时钟;发送结束中断标志;写冲突保护;总线竞争保护等。
SPI 总线四种工作方式 SPI 模块为了和外设进行数据交换,根据外设工作要求,其输出串行同步时钟极性和相位可以进行配置,时钟极性(CPOL)对传输协议没有重大的影响。

(二)SPI优缺点

优点

  • 支持全双工,信号完整性好;
  • 支持高速(100MHz以上);
  • 协议支持字长不限于8bits,可根据应用特点灵活选择消息字长,(高位先行还是低位先行,需要看外设芯片的手册,主要是保证两个 SPI通讯设备之间使用同样的协定);
  • 硬件连接简单;

缺点

  • 相比IIC多两根线,有4根线;
  • 没有寻址机制,只能靠片选选择不同设备。意思就是发送数据前,要先通过IO拉低设备片选信号,然后在发送数据,操作完成后将片选信号拉高;
  • 没有从设备接受ACK,主设备对于发送成功与否不得而知;
  • 典型应用只支持单主控;
  • 相比RS232 RS485和CAN总线,SPI传输距离短,局限于PCB板子;

(三)SPI通信过程

这是一张野火STM32F103手册上的图片,我们参考这种图片来分析通信过程
在这里插入图片描述
(1) 拉低NSS信号线,产生起始信号(图中没有画出);(需要软件操作)
(2) 把要发送的数据写入到“数据寄存器 DR”中,该数据会被存储到发送缓冲区;(需要软件操作)
(3) 通讯开始,SCK 时钟开始运行。MOSI 把发送缓冲区中的数据一位一位地传输出去;MISO 则把数据一位一位地存储进接收缓冲区中;(我们不用管,单片机会自动帮我们完成!)
(4) 当发送完一帧数据的时候,“状态寄存器 SR”中的“TXE 标志位”会被置 1,表示传输完一帧,发送缓冲区已空;类似地,当接收完一帧数据的时候,“RXNE标志位”会被置 1,表示传输完一帧,接收缓冲区非空;(需要软件操作,因为我们要做状态查询,通常是while死循环来保证数据被发送或接收)
(5) 等待到“TXE标志位”为1时,若还要继续发送数据,则再次往“数据寄存器DR”写入数据即可;等待到“RXNE 标志位”为 1时,通过读取“数据寄存器 DR”可以获取接收缓冲区中的内容;
(6) 拉高 NSS信号线,产生结束信号(需要软件操作)

三、OLED介绍

OLED即有机发光二极管&#

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值