STM8 SPI主模式

来自丢石头百科
Admin讨论 | 贡献2019年11月18日 (一) 16:33的版本 (STM8 SPI主模式在主配置时,串行时钟在SCK脚产生。置配步骤1.通过SPI_CR1寄存器的BR位定义串行时钟波特率。2.选择CPOL和CPHA位,定义数据传输和串行时钟间的相位关系(见图91)。3.配置SPI_CR1寄存器的LSBFIRST位定义 ...)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)


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位,将产生中断。

当数据传输完成时:

  • 移位寄存器中的数据传送到接收缓冲器,并且RXNE标志被置位。
  • * 如果SPI_ICR寄存器中的RXIE位被设置,则产生中断。 在最后一个采样时钟沿,RXNE位被设置,在移位寄存器中接收到的数据字被传送到接收缓冲器。读取SPI_DR寄存器得到这个缓冲值。读SPI_DR寄存器将清除RXNE位。 一旦传输开始,如果下一个将发送的数据被放进了发送缓冲器,就可以维持一个连续的传输流。注意在试图写发送缓冲器之前,需确认TXE标志应该是1。

    STM8 P233 1.jpg

    (图91:数据时钟时序图 )