一、SPI简介
SPI是串行外设接口(Serial Peripheral Interface)的缩写。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,如今越来越多的芯片集成了这种通信协议,比如AT91RM9200。
二、下载
前往官网下载有关实验的学习资料,官网上也有模块的详细介绍。这里贴一张官网上的产品图片
也有模块引脚的详细说明
模块引脚 | 引脚说明 |
---|---|
GND | OLED电源地 |
VCC | OLED 电源正(3.3v~5v) |
D0 | OLEDSPI和IIC总线时钟信号 |
D1 | OLED SPI和IIC总线数据信号 |
RES | OLED复位信号,低电平复位(选择IIC总线时,该引脚需要接高电平(可以接VCC)) |
DC | OLED命令/数据输入选择信号,高电平:数据,低电平:命令(选择3线制SPI总线时,该引脚不需要使用(可以不接);选择IIC总线时,该引脚需要接电源地) |
CS | OLED片选信号,低电平使能(选择IIC总线时,该引脚需要接电源地) |
进入官网主要下载0.96寸SPl_OLED模块配套资料包
下面的参考资料可根据自己的需求自行下载。
三、执行程序
打开下载的资料包,点击1-Demo->Demo_STM32,选择与自己模块型号对口的工程打开。
之后需要对程序代码进行一些修改以满足实验要求。
test.c
在程序这个位置插入自己的学号姓名。
- oledfont.h
使用取字模软件(可在刚刚的官网上下载)生成名字的字模,需要注意的是取字模的时候需要将字模的格式调整正确,比如上图需要将字模选项中字体调为宋体(默认),每行列数据16*16大小,取模方式逐行式,取模走向顺向(高位在前),自定义格式C51格式。
在输入栏输入名字,点击生成字模,将生成的字模复制进代码,注意不要出现乱码的情况。
- AHT20tem.h温湿度采集
#include "AHT20tem.h"
//读取AHT20的状态寄存器
u8 AHT20_Read_Status(void)
{
u8 Byte_first,flag;
IIC_Start();
IIC_Send_Byte(0x71);
flag=IIC_Wait_Ack();
Byte_first = IIC_Read_Byte(flag);
IIC_NAck();
IIC_Stop();
return Byte_first;
}
void AHT20_SendAC(void) //向AHT20发送AC命令
{
IIC_Start();
IIC_Send_Byte(0x70);
IIC_Wait_Ack();
IIC_Send_Byte(0xac);//0xAC采集命令
IIC_Wait_Ack();
IIC_Send_B