一、SPI(串行外设接口)
(一)SPI概念
SPI是串行外设接口(Serial Peripheral Interface)的缩写,SPI是一种高速、全双工、同步通信的通信总线,被广泛应用在ADC、LCD等与MCU的通信过程中,特点就是快。
(二)SPI协议
NSS:片选设备线,每个从机都有自己的一条单独的总线与主机连接,此总线的作用就是为主机选择对应的从机进行传输数据,每个从机与主机之间的NSS总线互不相干。SPI中规定通信以NSS信号线拉低为开始,拉高为结束。
SCK:时钟信号线,因为SPI是同步通信,所以需要一根时钟信号线来统一主机和从机之间的数据传输,只有在有效的时钟信号下才能正常传输数据,不同设备支持的最高传输频率可能不一样,在传输过程中传输频率受限于低速的一方。
MOSI:(Master Output, Slave Input),顾名思义,MOSI就是主机输出/从机输入,因为SPI是全双工的通信总线,即主机和从机可以同时收发数据,这样的话就需要俩条线同时分别负责:主->从和从->主这俩条传输线路。而MOSI就专门负责主机向从机传输数据。
MISO:(Master Input,, Slave Output),与MOSI恰恰相反,MISO专门负责从机向主机传输数据。
(三)通讯时序图
所有的运作都是基于SCK时钟线的,SCK对于SPI的作用就像心脏对于人体的作用,SCK为低电平就代表心脏停止跳动。
二、使用0.96寸OLED显示屏显示学号姓名
(一)实验工具与材料
软件:keil
硬件:PC机,STM32开发板(本过程采用的是野火stm32mini开发板),0.96寸OLED显示屏,下载器(本过程采用ST_Link)
(二)0.96寸OLED显示屏相关介绍
可参考下面链接:
0.96inch SPI OLED Module
(三)姓名中文的点阵(16*16)
1.由于程序并不需要显示所有的中文,所以将对应需要的文字添加到程序就可以了。
(四)显示姓名学号代码修改
1.显示姓名学号函数
void TEST_MainPage(void)
{
GUI_ShowCHinese(28,24,16,"梅文翔",1);//显示中文名
GUI_ShowString(4,48,"631907060116",16,1);//显示学号
delay_ms(1500);