SPI一共五根线:MOSI,MISO,CLK,VCC,GND
但是在日常运用中,还需要一个片选信号需要主机去控制,如果一对一的话CS引脚可以不要,直接接地就行。
这图就是SPI通讯框图,我的理解读写的时候就是他们数据发生交换,只能是这种方式,读的时候也相当于往里面写,但是还有一些不懂的。
他有四种工作方式,由CPOL和CPHA控制,也就是00,01,10,11。
CPOL是极性,CPOL=0代表空闲时候为低电平;CPOL=1代表空闲时候为高电平。
CPHA=0第一个跳变沿就采用数据,CPHA=1代表第二个跳变沿才开始采集数据。
它的传输方式还分为MSB,LSB。MSB就是低地址存放高位数据,比如传输11001100,用MSB的方式存放进去就是00110011,而LSB就是11001100.
还有一些寄出器的设置在手册里可以看到,比如波特率设置在spi_cr1寄存器里面。
发送字节函数或者其他函数STM32库里面基本都有,调用就好。
但是下面还有一些不懂得地方,应该是关于W25Q128的。
这个u8类型数据右移16位不是等于0吗,就变成了传输24位地址??
往W25Q128里面读的时候就一定时0XFF,还是随便吗??? |