一、SPI简介
SPI是串行外设接口(Serial Peripheral Interface)的缩写,是由 Motorola 公司提出的一种高速的,全双工,同步的通信总线,被广泛地使用在 ADC、LCD 等设备与 MCU 间要求通讯速率较高的场合。SPI总线系统可直接与各个厂家生产的多种标准外围器件连接,该接口一般使用4条线:串行时钟线(SCK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOST和低电平有效的从机选择线C/S(有的SPI接口芯片带有中断信号线INT或INT、有的SPI接口芯片没有主机输出/从机输入数据线MOSI)
SPI的连接方式
SPI的通讯过程
二、OLED简介
OLED(OrganicLight-Emitting Diode),又称为有机电激光显示、有机发光半导体(OrganicElectroluminesence Display,OLED)。OLED属于一种电流型的有机发光器件,是通过载流子的注入和复合而致发光的现象,发光强度与注入的电流成正比。OLED在电场的作用下,阳极产生的空穴和阴极产生的电子就会发生移动,分别向空穴传输层和电子传输层注入,迁移到发光层。当二者在发光层相遇时,产生能量激子,从而激发发光分子最终产生可见光。
0.96寸OLED相关介绍
- 0.96寸OLED屏,支持黑白、黑蓝或者黄蓝双色显示
- 128x64分辨率,显示效果清晰,对比度高
- 超大可视角度:大于160°(显示屏中可视角度最大的一种屏幕)
- 宽电压供电(3V~5V),兼容3.3V和5V逻辑电平,无需电平转换芯片
- 默认为4线制SPI总线,可以选择3线制SPI总线或者IIC总线
- 超低功耗:正常显示仅为0.06W(远低于TFT显示屏)
- 军工级工艺标准,长期稳定工作
- 提供丰富的STM32、C51、Arduino、Raspberry Pi以及MSP430平台示例程序
- 提供底层驱动技术支持
.三、显示姓名、学号
在 OLED 上显示英文、数字,可以直接输出显示,但是显示中文必须要对中文进行编码成点阵。 打开字模工具,输入想要显示的汉字,点击生成字模即可! 字模工具百度搜索PCtolcd2002 注意对字模生成软件需要做如下修改:
代码修改区域
在 gui.c 下有个 oledfont.h 头文件,打开后,将 cfont16[] 数组内的内容修改成自己的中文文字点阵即可。 然后在 test.c 文件最后,修改输出代码:
void TEST_ShowMyName(void)
{
GUI_ShowCHinese(0,0,16,"通信工程专业",1);
GUI_ShowString(0,16,"631907030623",16,1);
GUI_ShowCHinese(80,16,16,"唐杨洋",1);
}
main.c函数
int main(void)
{
delay_init();
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
OLED_Init();
IIC_Init();
OLED_Clear(0);
while(1)
{
OLED_WR_Byte(0x2E,OLED_CMD);
OLED_WR_Byte(0x27,OLED_CMD);
OLED_WR_Byte(0x00,OLED_CMD);
OLED_WR_Byte(0x00,OLED_CMD);
OLED_WR_Byte(0x07,OLED_CMD);
OLED_WR_Byte(0x01,OLED_CMD);
OLED_WR_Byte(0x00,OLED_CMD);
OLED_WR_Byte(0xFF,OLED_CMD);
TEST_ShowMyName();
read_AHT20_once();
OLED_WR_Byte(0x2F,OLED_CMD);
delay_ms(1500);
delay_ms(1350);
}
}
硬件连接说明
温度传感器与这篇博客相同 以下为OLED与STM32的连接
实验结果
四、总结
对于这个实验,开始不知道什么是SPI,做完实验还是对SPI不理解,整个实验过程就是修改函数中的代码,对代码没有进行过分析,不过还好能成功做出这个实验。 参考文章 基于STM32的0.96寸OLED显示屏显示数据 工程文件 提取码:1234
|