一、SPI原理
1.SPI的定义
SPI(Serial Peripheral Interface)就是串行外围设备接口。
SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚。SPI 是一个环形总线结构,由 ss(cs)、sck、sdi、sdo 构成,时序主要是在 sck 的控制下,两个双向移位寄存器进行数据交换。
上升沿发送、下降沿接收、高位先发送。
上升沿到来的时候,sdo 上的电平将被发送到从设备的寄存器中。
下降沿到来的时候,sdi 上的电平将被接收到主设备的寄存器中。
2.SPI引脚
SS( Slave Select):从设备选择信号线,常称为片选信号线。
SCK (Serial Clock):时钟信号线,用于通讯数据同步。
MOSI (Master Output, Slave Input):主设备输出/从设备输入引脚。
MISO(Master Input,,Slave Output):主设备输入/从设备输出引脚。
二、显示姓名学号或其它数据
1.硬件连接
(1)本次使用的是野火STM32指南者开发板
(2)0.96寸OLED显示屏相关介绍
按照下表,连接开发板和OLED显示屏:
2.相关进程
(1)首先我们使用字模软件,取出自己所需要的字模数据
进入字模软件后,我们需要进行一些设置,点击选项,设置成如下选项
点击确定,我们在下方白框内输入需要的汉字和数字,计算机就能够直接把汉字和数字的字模数据转换成十六进制输出
这样我们就可以直接复制字模数据到我们所需的工程里面去,汉字取字同理
(2)打开keil中的测试程序
找到数据显示的代码,将我们需要加入的文字代码粘贴在后面:
最后我们找到工程中的显示数据代码进行修改,代码如下:
void TEST_MainPage(void)
{
GUI_ShowCHinese(28,20,16,"这里改为想要显示的上面代码的文字",1);//中文姓名
GUI_ShowString(4,48,"修改为显示的数字",16,1);//数字详细
delay_ms(1500);
delay_ms(1500);
}
main函数修改:
int main(void)
{
delay_init(); //延时函数初始化
OLED_Init(); //初始化OLED
OLED_Clear(0); //清屏(全黑)
while(1)
{
TEST_MainPage(); //界面显示
}
}