SPI接口下的OLED显示

本文详细介绍了如何使用SPI接口进行OLED显示,从SPI的基本概念、接口信号解析,到资料获取,再到具体的SPI接口实验,包括0.96寸SPI OLED的选择和汉字点阵字模的生成。最后,文章还提到了将温湿度模块与SPI接口结合,展示温湿度信息的方法。
摘要由CSDN通过智能技术生成

一、SPI简介

SPI( Serial Peripheral Interface-串行外设接口)总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。SPI有三个寄存器分别为: 控制寄存器SPCR,状态寄存器SPSR,数据寄存器SPDR。外围设备包括 FLASHRAN、网络控制器、LCD显示驱动器、A/D转换器和MCU等。SPI总线系统可直接与各个厂家生产的多种标准外围器件直接接口,该接口一般使用4条线:串行时钟线(SCLK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOS和低电平有效的从机选择线NSS(有的SP接口芯片带有中断信号线NT、有的SPI接口芯片没有主机输出/从机输入数据线MOSI)。
接口信号

  • MOSI-主器件数据输出,从器件数据输入

  • MISO-主器件数据输入,从器件数据输出

  • SCLK-时钟信号,由主器件产生,最大为 fPCLK2,从模式频率最大为fCPU/2

  • NSS-从器件使能信号,由主器件控制,有的IC会标注为CS( Chip select)
    在点对点的通信中,SPI接口不需要进行寻址操作,且为全双工通信,显得简单高效。
    与IIC相比

  • 在点对点的通信中,SPI接口不需要进行寻址操作,且为全双工通信,显得简单高效。

  • 在多个从器件的系统中,每个从器件需要独立的使能信号,硬件上比I2C系统要稍微复杂一些。

二、资料获取

店铺资料有卖的,下载相应的资料,选择自己喜欢的OLED,即可,这里我做的就是0.96寸SPI 7针和0.96寸SPI4针。
在这里插入图片描述

三、SPI接口实验

  1. 准备工作
    在这里插入图片描述
    2.生成中文点阵字模,添加到oledfont.c
    在OLED上如果要显示汉字,就必须生成字模,OLED显示的汉字大多都属于点阵汉字,需要按照需求生成字模,调用指针才行,同样,店铺资料可以下载取模软件,在字符取模里选择PCtoLCD2002.exe文件,根据要求设置相应的选项,输入汉字,即可得到想要的文字
    在这里插入图片描述
    设置如下
    在这里插入图片描述
    3.修改主函数
//	 
//本程序只供学习使用,未经作者许可,不得用于其它任何用途
//测试硬件:单片机STM32F103RCT6,晶振72M  单片机工作电压3.3V或5V
//QDtech-OLED液晶驱动 for STM32
/o冯@ShenZhen QDtech co.,LTD
//公司网站:www.qdtech.net
//淘宝网站:http://qdtech.taobao.com
//我司提供技术支持,任何技术问题欢迎随时交流学习 
//邮箱:QDtech2008@gmail.com 
//Skype:QDtech2008
//技术交流QQ群:324828016
//创建日期:2018/6/6
//版本:V1.0
//版权所有,盗版必究。
//Copyright(C) 深圳市全动电子技术有限公司 2009-2019
//All rights reserved
/****************************************************************************************************
//=========================================电源接线================================================//
//      5V  接DC 5V电源
//     GND  接地
//======================================OLED屏数据线接线==========================================//
//本模块数据总线类型为IIC
//     SCL  接PB13    // IIC时钟信号
//     SDA  接PB14    // IIC数据信号
//======================================OLED屏控制线接线==========================================//
//本模块数据总线类型为IIC,不需要接控制信号线    
//=========================================触摸屏接线=========================================//
//本模块本身不带触摸,不需要接触摸屏线
//============================================================================================//
  * @attention
  *
  * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
  * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
  * TIME. 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用Arduino模拟SPI接口驱动OLED屏,需要进行以下步骤: 1. 首先,将OLED屏的引脚连接到Arduino的相应引脚。通常,OLED屏使用的是SPI接口,因此需要连接ARDUINO的 MOSI、MISO、CLK、CS、DC、RESET引脚。 2. 接下来,在Arduino IDE中导入OLED屏的库文件。可以在网上搜索“Arduino OLED Library”,然后下载并安装。 3. 在Arduino IDE中打开一个新的空白项目,然后在程序中包含所需的库文件。 4. 设置SPI通信参数,包括时钟频率、数据位顺序、数据传输模式等。 5. 初始化OLED屏的引脚,并设置其分辨率和显示模式。 6. 使用库函数向OLED屏发送图像和文本等数据,以显示所需信息。 下面是一个示例程序,演示如何使用Arduino模拟SPI接口驱动OLED屏: ``` #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define OLED_MOSI 9 #define OLED_CLK 10 #define OLED_DC 11 #define OLED_CS 12 #define OLED_RESET 13 Adafruit_SSD1306 display(OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS); void setup() { display.begin(SSD1306_SWITCHCAPVCC); display.clearDisplay(); display.setTextSize(1); display.setTextColor(WHITE); display.setCursor(0,0); display.print("Hello, world!"); display.display(); } void loop() { } ``` 这个程序使用了Adafruit_SSD1306库来驱动OLED屏,通过设置屏幕分辨率和显示模式,向屏幕上显示了“Hello, world!”这个文本。你可以参考这个程序,编写自己的代码来驱动OLED屏。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值