【无标题】通信协议二 SPI通信

本文介绍了SPI通信协议,特别是三线SPI的工作原理,包括SCLK、MOSI和MISO信号线的作用。SPI适用于高速数据通信,如flash读写和LCD屏刷新。通过ESP32的SPI配置示例解释了配置过程,并预告了LCD屏幕驱动的SPI通信应用。此外,作者分享了学习嵌入式知识的心得,计划讲解I2C、CAN等通信协议。
摘要由CSDN通过智能技术生成

通信协议二 SPI通信

根据需求不同,SPI一般分为四线SPI和6线SPI,还有8线SPI,我们一般用四线SPI;SPI一般用于高速数据通信,一般用于flash读写,lcd屏刷新等数据量庞大的场景。

三线SPI

我们先从最简单的三线SPI开始,此时对于从设备,我们需要硬件接地以选中。
三线SPI包括:

  • SCLK:信号时钟线;
  • MOSI:主设备输出,从设备接收信号线,用于主设备向从机发送指令或数据;
  • MISO:主设备输入,从设备输出信号线,用于主设备接收从机发送的是数据;
  • 另外,在三线SPI中,从设备CS线已经被硬件接地,此时SPI只能挂载一个从设备或通过菊花链以移位寄存器的形式连接。

SPI的通信过程:

主机先通过MOSI向从机发送(可省略)命令或地址–>然后通过通过MOSI向从机写入数据或通过MISO从从机接收数据;
另外为了满足读写的时序要求,可以在主机发送指令后等待指定时序进行从机数据接收。
我们以esp32的spi配置为例:
我们需要配置三个SPI相关结构体,分别是spi_bus_config_t,spi_device_interface_config_t, spi_transaction_t;

//通过spi_bus_config_t对SPI引脚进行配置,并规定最大传输字节数;
typedef struct {
   
    union {
   
      int mosi_io_num;    //配置MOSI引脚
      int data0_io_num;   
    };
    union {
   
      int miso_io_num;    //配置MISO引脚
      int data1_io_num;   
    };
    int sclk_io_num;      //时钟引脚配置
    union {
   
      int quadwp_io_num;  //quadWP引脚怕配置,下面类似,不在概述
      int data2_io_num;   
    };
    union {
   
      int quadhd_io_num
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值