- 1、本文档共37页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
通用SPI的一般应用
SPI为从模式数据接收过程 对于接收器,当数据接收完成时: 移位寄存器中的数据传送到接收缓冲器,SPI_SR 寄存器中的RXNE标志被设置。 如果设置了SPI_CR2寄存器中的RXNEIE位,则产生中断。 在最后一个采样时钟边沿后,RXNE位被置’1’,移位寄存器中接收到的数据字节被传送到接收缓冲器。当读SPI_DR寄存器时,SPI设备返回这个接收缓冲器的数值。 读SPI_DR寄存器时,RXNE位被清除。 配置SPI为主模式 配置步骤 1. 通过SPI_CR1寄存器的BR[2:0]位定义串行时钟波特率。 2. 选择CPOL和CPHA位,定义数据传输和串行时钟间的相位关系(见图212)。 3. 设置DFF位来定义8位或16位数据帧格式。 4. 配置SPI_CR1寄存器的LSBFIRST位定义帧格式。 5. 如果需要NSS引脚工作在输入模式,硬件模式下,在整个数据帧传输期间应把NSS脚连接到高电平;在软件模式下,需设置SPI_CR1寄存器的SSM位和SSI位。如果NSS引脚工作在输出模式,则只需设置SSOE位。 6. 必须设置MSTR位和SPE位(只当NSS脚被连到高电平,这些位才能保持置位)。 在这个配置中,MOSI引脚是数据输出,而MISO引脚是数据输入。 SPI常用库函数 SPI接口原理 程序配置过程: ①配置相关引脚的复用功能,使能SPIx时钟 void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct); ②初始化SPIx,设置SPIx工作模式 void SPI_Init(SPI_TypeDef* SPIx, SPI_InitTypeDef* SPI_InitStruct); ③使能SPIx void SPI_Cmd(SPI_TypeDef* SPIx, FunctionalState NewState); ④SPI传输数据 void SPI_I2S_SendData(SPI_TypeDef* SPIx, uint16_t Data); uint16_t SPI_I2S_ReceiveData(SPI_TypeDef* SPIx) ; ⑤查看SPI传输状态 SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_RXNE); * * * * * * * * * * * * * * * * * * * * SPI接口原理 SPI接口简介 SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线, SPI接口原理 STM32 SPI接口可配置为支持SPI协议或者支持I2S音频协议,默认是SPI模式。可以通过软件切换到I2S方式。 SPI功能描述 SPI引脚 通常SPI通过4个引脚与外部器件相连: MISO:主设备输入/从设备输出引脚。该引脚在从模式下发送数据,在主模式下接收数据。 MOSI:主设备输出/从设备输入引脚。该引脚在主模式下发送数据,在从模式下接收数据。 SCK:串口时钟,作为主设备的输出,从设备的输入 NSS:从设备选择 NSS:从设备选择。这是一个可选的引脚,用来选择主/从设备。它的功能是用来作为“片选引脚”,让主设备可以单独地与特定从设备通讯,避免数据线上的冲突。 从设备的NSS引脚可以由主设备的一个标准I/O引脚来驱动。一旦被使能(SSOE位),NSS引脚也可以作为输出引脚,并在SPI处于主模式时拉低; 此时,所有的SPI设备,如果它们的NSS引脚连接到主设备的NSS引脚,则会检测到低电平,如果它们被设置为NSS硬件模式,就会自动进入从设备状态。 SPI接口原理 从选择(NSS)脚管理 有2种NSS模式: 软件NSS模式:可以通过设置SPI_CR1寄存器的SSM位来使能这种模式(见图211)。在这种模式下NSS引脚可以用作它用,而内部NSS信号电平可以通过写SPI_CR1的SSI位来驱动 硬件NSS模式,分两种情况: ─ NSS输出被使能:当STM32F10xxx工作为主SPI,并且NSS输出已经通过SPI_CR2寄存器的SSOE位使能,这时NSS引脚被拉低,所有NSS引脚与这个主SPI的NSS引脚相连并配置为硬件NSS的SPI设备,将自动变成从SPI设备。 当一个SPI设备需要发送广播数据,它必须拉低NSS信号,以通知所有其它的设备它是主设备;如果它不能拉低NSS,这意味着总线上有另外一个主设备在通信,这时将产生一个硬件失败错误(Hard Fault)。 ─ NSS输出被关闭:允许操作于多主环境。 MOSI引脚相互连接,MISO引脚相互连接。这样,数据在主
文档评论(0)