[嵌入式软件][启蒙篇][仿真平台] STM32F103实现SPI控制OLED屏幕

上一篇:
[嵌入式软件][启蒙篇][仿真平台] STM32F103实现LED、按键

[嵌入式软件][启蒙篇][仿真平台] STM32F103实现串口输出输入、ADC采集

[嵌入式软件][启蒙篇][仿真平台]STM32F103实现定时器
[嵌入式软件][启蒙篇][仿真平台] STM32F103实现IIC控制OLED屏幕


文章目录

  • 一、SPI
    • (1) 简介
    • (2) 示例代码(OLED 显示图片)
    • (3) 仿真效果 (OLED 显示图片)
  • 二、IIC与SPI对比

[嵌入式软件][启蒙篇][仿真平台] STM32F103实现SPI控制OLED屏幕_第1张图片
按照上图进行布置。

一、SPI

[嵌入式软件][启蒙篇][仿真平台] STM32F103实现SPI控制OLED屏幕_第2张图片

(1) 简介

  1. SPI 总线由 4 个引脚组成。SCLK(时钟)、MOSI(输出)、MISO(输入)、CS(片选)
  2. 相关应用:音频编解码器、SD卡、OLED、触摸屏、LCD、视频游戏控制器、相机镜头卡口等
  3. SPI的速度比前面的IIC更快。我们下面对比下效果。

(2) 示例代码(OLED 显示图片)

#include 
#include 
#include "sys.h"
#include "stm32f10x_conf.h"
#include "delay.h"
#include "spi_oled.h"
#include "bmp.h"

int main() {
    // spi oled 端口初始化
    spi_oled_init();
    // OLED清屏
    SPI_OLED_Clear();
    // 显示一张图片
    SPI_OLED_DrawBMP(0, 0, 128, 8, BMP1);
    delay_ms(50);
    while(1) {
        // OLED清屏
        SPI_OLED_Clear();
        delay_ms(10);
        // 显示一张图片
        SPI_OLED_DrawBMP(0, 0, 128, 8, BMP_LONG);
        delay_ms(50);

        // OLED清屏
        SPI_OLED_Clear();
        delay_ms(10);
        // 显示一张图片
        SPI_OLED_DrawBMP(0, 0, 128, 8, BMP_GUOQI);
        delay_ms(50);
    }
}

(3) 仿真效果 (OLED 显示图片)

[嵌入式软件][启蒙篇][仿真平台] STM32F103实现SPI控制OLED屏幕_第3张图片

上一篇IIC的效果(在国旗时,有明显的缓慢动作):
[嵌入式软件][启蒙篇][仿真平台] STM32F103实现SPI控制OLED屏幕_第4张图片

二、IIC与SPI对比

名称 速度 引脚数量 工作模式
IIC 100 kbps
400 kbps
3.4 Mbps
2pin 半双工(一发一收)
SPI >10 Mbps
(没有速度限制,却决于对方设备支持)
4pin 全双工(同时收发)

你可能感兴趣的:(#,stm32,嵌入式硬件,单片机)