相较于stm32硬件SPI通信,软件SPI相较麻烦些许。但是使用软件模拟SPI通信过程,一是有助理解SPI的通讯时序和协议,二是方便今后的移植。
参考文章:
[1] STM32F10x_SPI(硬件接口 + 软件模拟)读写Flash(25Q16)
[2] STM32 软件模拟SPI时序驱动NRF24L01
[3] SPI总线的原理与Verilog实现
[4] 模拟SPI协议时序
一、SPI通信协议
1)协议
上升沿发送数据: 在低电平变为高电平之前就要把要发送的数据准备好
即:
step1: SCK = 0;
step2: 准备数据
step3: SCK = 1;
下降沿接收数据: 在高电平变成低电平之后,再去接收数据,否则接收的表示对应的字节
即:
SCK = 1;
for(int i = 0; i < 8;i++){
step1:SCK = 0;
step2:读取数据;
step3:SCK = 1;
}