初级会员

- 积分
- 98
- 金钱
- 98
- 注册时间
- 2016-8-22
- 在线时间
- 11 小时
|
发表于 2016-10-11 21:34:12
|
显示全部楼层
本帖最后由 dazalei 于 2016-10-11 21:38 编辑
SPI 能够在以下两种配置中以半双工模式工作。
● 1 个时钟和 1 条双向数据线
● 1 个时钟和 1 条数据线(只接收或只发送)
1 个时钟和 1 条双向数据线 (BIDIMODE=1)
可将 SPI_CR1 寄存器中的 BIDIMODE 位置 1 来使能此模式。在此模式下, SCK 用于时
钟, MOSI(主模式下)或 MISO(从模式下)用于数据通信。通过 SPI_CR1 寄存器中的
BIDIOE 位来选择传输方向(输入/输出)。当该位置 1 时,数据线为输出,否则为输入。
1 个时钟和 1 条单向数据线 (BIDIMODE=0)
在此模式下,应用程序可使用 SPI 的只发送或只接收功能。
● 只发送模式类似于全双工模式( BIDIMODE=0、 RXONLY=0):在发送引脚(主模式下
的 MOSI 或从模式下的 MISO)上发送数据,接收引脚(主模式下的 MISO 或从模式下
的 MOSI)可用作通用 IO。在这种情况下,应用程序只需要忽略接收缓冲区(即使读取
数据寄存器,它也不包含接收值)。
● 只接收模式下,应用程序可将 SPI_CR2 寄存器中的 RXONLY 位置 1 来关闭 SPI 输出
功能。在这种情况下,发送 IO 引脚(主模式下的 MOSI 或从模式下的 MISO)可用于
其它用途。
要在只接收模式下开始通信,配置并使能 SPI:
● 在主模式下,通信会立即开始,并在 SPE 位清零且当前接收结束时停止。在此模式下无
需读取 BSY 标志。在进行 SPI 通信时,该标志始终置 1。
● 在从模式下,只要 NSS 被拉低(或在 NSS 软件模式下将 SSI 位清零)并且一直有来自
主器件的 SCK 输入, SPI 就会继续接收。
|
|