
STM32F407VGT6主控主频高达168MhzFLASH1024KB而STM32F407VET6只有512K FLASH另外上述高配版本配置了W25Q128高速晶振8MLED灯驱动引脚PB2驱动逻辑高电平点亮FLASH W25Q128接线图常见SPI设备还有NRF24L01、TF卡、OLED屏幕当单片机引脚资源紧张时在控制成本的情况下可以使用3-8译码器来生成多路片选CS信号节省单片机资源TF卡官方通信协议是SDIO它也是支持SPI协议的可以使用SPI通信协议对其进行读写SPI的一主多从硬件连接如下图所示所有的设备需要满足共地条件相比之下IIC只需要两根数据线即可完成一主多从的通信同一时间主机只能选中一个设备进行通信同一时刻只能拉低一路片选信号输出引脚配置为推挽输出而输入引脚配置为浮空输入或上拉输入MOSI与SCLK推挽输出、MISO浮空输入、CS推挽输出默认上拉得益于推挽输出的驱动能力SPI拥有更快的传输速度一般能够达到MHZ级别相比之下IIC由于采用了开漏输出开漏模式依赖于外部上拉电阻实现高电平驱动其电平0-1的跳变需要一定时间因此IIC的传输速度较慢相比于IICSPI不支持多主机模式从设备未被选中时从设备MISO数据线保持高阻态不输出任何电平有效防止了电平冲突SPI基本收发电路时序图波特率发生器上升沿所有移位寄存器向左移动一位移出去的位传输到引脚上假设主机和从机在进行双向数据传输主机与从机的数据移位寄存器在时钟上升沿均左移一位所移出去的数据位同过数据线传输到主从设备的数据移位寄存器的最低位上总共循环8次即可完成主从设备间一字节数据的双向传输当只有MISO主机只接收数据有效时主机也会向从机发送0x00或0xFF从机不会理会这些无效数据起到类似于占位的作用依旧类似于上述双向数据传递的实现当只有MOSI主机只发送数据有效时从机也会随便通常选用0x00或0xFF发送一个字节数据用于置换主机数据与前文描述类似SPI的起始条件与终止条件通信期间CS始终为低电平选中状态起始条件CS拉低CS空闲状态高电平-CS选中状态低电平终止条件CS拉高CS选中状态低电平-CS空闲状态高电平时钟极性与时钟相位0、2对比只有SCLK极性不同13同理模式0CPOL0空闲状态SCK0CPHA0第一个边沿采集移入数据第二个边沿移出数据其实在第一个时钟边沿之前就开始移出数据了,对比模式1比较好理解相当于提前一个相位采集数据模式1CPOL0空闲状态SCK0CPHA1第一个边沿移出数据第二个边沿采集移入数据模式2CPOL1空闲状态SCK1SCK波形极性取反CPHA0第一个边沿采集移入数据第二个边沿移出数据模式3CPOL1空闲状态SCK1SCK波形极性取反CPHA1第一个边沿移出数据第二个边沿采集移入数据时钟总线架构晶振按键外置下拉电阻当按键按下时引脚被输入高电平可被用户编程使用。 开发板的按键使用的是KEY接到了单片机的PA0引脚上因此需要配置PA0引脚的状态。按键极性1-按下0-空闲按键管脚PA0参考资料立创·天空星-STM32F407VGT6开发板-高配版【立创·天空星】开发板原理图两层板开发板全流程设计指南-立创·天空星开发板立创·天空星STM32/GD32【快速入门 即学即用】74HC138译码器的原理和使用W25QXXX