【作业要求】
【我的做法】
【结果/截图说明】
一。1. SCLK(串行时钟):主机输出时钟信号,所有设备共用,数据传输节拍由主机控制;
2. MOSI(主机发、从机收):主机→从机单向数据线;
3. MISO(从机发、主机收):从机→主机单向数据线; 二。1. 选中从机
主机将目标从机的 CS 引脚拉低,激活该从机,其余从机 CS 保持高电平,不参与通信。
2. 准备数据载入移位寄存器
主机、从机分别把待发送数据存入各自 8/16 位移位寄存器。
3. SCLK 时钟驱动移位交换(核心)
主机持续输出 SCLK 时钟脉冲,每个时钟边沿完成 1 位交换:
- 时钟上升 / 下降沿(由 SPI 模式 CPOL/CPHA 决定):
MOSI 把主机移位寄存器最高 / 最低位发给从机;
MISO 同步把从机移位寄存器最高 / 最低位传回主机;
- 每来 1 个时钟,两边寄存器同时左 / 右移 1 位,收发同步进行,实现全双工。
4. 一帧传输完成
发送完规定位数(通常 8bit),移位寄存器数据全部交换完毕,主机读取 MISO 线上收到的从机数据。
5. 结束通信
主机拉高 CS 片选,释放当前从机,如需和其他设备通信,切换对应 CS 引脚重复上述流程。
4. CS/SS(片选):低电平有效,每个从机独立一根片选线,主机拉低对应从机 CS,才能通信,拉高则断开
评论 0