适用场景
适用于高速,双向数据传输场景
组成
- MOSI——Master Output Slave Input
- MISO
- SCK——Serial Clock 串行时钟线 时钟信号由主机产生 从机接收
- NSS——Negative Slave Select 低电压有效从机选择 从机选择(低电压有效)
主机向对应的NSS发送低电压可以选中从机 - 相同引脚接在一起(不同于I2C)
通信过程
- 主机向从机发送 由于spi是双向的 主机发送的同时也会从从机收到
波特率
- 选择允许的最大值
- 考虑设备能承受的极限
- 考虑电路板能承受的极限(面包板加杜邦线一般10MHz)
时钟的极性
时钟极性=低 空闲状态为低电压
时钟极性=高 空闲状态为高电压
第一边沿和第二边沿
时钟的相位
- 第一边沿采集
- 第二边沿采集
四种模式
极性\相位 | 第一边沿 | 第二边沿 |
---|---|---|
低 | 模式0 | 模式1 |
高 | 模式2 | 模式3 |
hal库下的flash
spi配置
全双工多用
三种方式
查询方式
中断方式
flash数据写入过程
写使能——扇区擦除——等待擦除完成——写使能——页编程——等待完成