STM8 SPI主模式
来自丢石头百科
STM8 SPI主模式
在主配置时,串行时钟在SCK脚产生。
置配步骤
1.通过SPI_CR1寄存器的BR[2:0]位定义串行时钟波特率。
2.选择CPOL和CPHA位,定义数据传输和串行时钟间的相位关系(见图91)。
3.配置SPI_CR1寄存器的LSBFIRST位定义帧格式。
4.硬件模式下,在数据帧的全部传输过程中应把NSS脚连接到高电平;在软件模式下,需设置SPI_CR2寄存器的SSM和SSI位为'1'。
5.必须设置MSTR和SPE位(只当NSS脚被连到高电平,这些位才能保持为‘1’)。
在这个配置里,MOSI引脚是数据输出,MISO引脚是数据输入。
数据传输过程
当一字节写进发送缓冲器时,发送过程开始。
在STM8发送第一个数据位时,数据字被并行地(通过内部总线)传入移位寄存器,而后串行地移出到MOSI脚上;MSB在先还是LSB在先,取决于SPI_CR1寄存器中的LSBFIRST位。数据从发送缓冲器传输到移位寄存器时TXE标志将被置位,如果设置SPI_CR1寄存器中的TXEIE位,将产生中断。
当数据传输完成时:
* 如果SPI_ICR寄存器中的RXIE位被设置,则产生中断。 在最后一个采样时钟沿,RXNE位被设置,在移位寄存器中接收到的数据字被传送到接收缓冲器。读取SPI_DR寄存器得到这个缓冲值。读SPI_DR寄存器将清除RXNE位。 一旦传输开始,如果下一个将发送的数据被放进了发送缓冲器,就可以维持一个连续的传输流。注意在试图写发送缓冲器之前,需确认TXE标志应该是1。
(图91:数据时钟时序图 )