一、SPI简介
1、SPI的定义
SPI是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)。也是所有基于SPI的设备共有的,它们是MISO(数据输入),MOSI(数据输出),SCLK(时钟),CS(片选)。
MOSI --主设备数据输出,从设备数据输入 MISO --主设备数据输入,从设备数据输出 SCLK --时钟信号,由主设备产生 CS --从设备使能信号,由主设备控制
2、SPI的工作过程
这是一个主机的通讯时序。NSS、SCK、MOSI 信号都由主机控制产生,而 MISO 的信号由从机产生,主机通过该信号线读取从机的数据。MOSI 与 MISO 的信号只在 NSS 为低电平的时候才有效,在 SCK 的每个时钟周期 MOSI 和 MISO 传输一位数据。
二、使用OLED显示屏显示数据
1、OLED显示屏
在这次的实验中需要使用OLED显示屏 关于OLED显示屏的介绍,见以下链接:http://www.lcdwiki.com/zh/0.96inch_SPI_OLED_Module
2、下载程序
用厂家给的Demo程序,见以下链接: http://www.lcdwiki.com/res/Program/OLED/0.96inch/SPI_SSD1306_MSP096X_V1.0/0.96inch_SPI_OLED_Module_SSD1306_MSP096X_V1.0.zip
3、字模提取
涉及到中文点阵的有关知识。 并不需要显示所有的中文,只要将需要显示的文字添加到程序中。 需要使用到字模提取软件PCtoLCD2002完美版,软件的具体配置信息也在下载文件中,可以在如下链接下载:https://pan.baidu.com/s/1B4Cfi5Ji8ifcJ4g7DKTbog 提取码:1121
4、修改代码
在main.c文件中,修改主函数的代码
int main(void)
{
delay_init();
OLED_Init();
OLED_Clear(0);
while(1)
{
TEST_MainPage();
}
}
5、编译运行
编译运行,没有错误,并且生成了hex文件
6、烧录文件
打开mcuisp软件,按如下步骤进行 搜索串口 选择上一节中生成的hex文件 开始编程 出现如下字样说明烧录成功
7、接线
按照下图的对应关系接线
三、总结
在这次实验中,我学习了并且理解了OLED显屏和汉字点阵编码原理,并且使用STM32F103的SPI接口实现了在OLED显示屏上显示自己的学号和姓名。整体的操作步骤并不难,因为都是在已有的代码上稍微修改的。但是在完成实验之余,理解原理也是十分重要的。
参考文献
https://blog.csdn.net/qq_43279579/article/details/111414037 https://blog.csdn.net/lly_3485390095/article/details/83474658
|