ImageVerifierCode 换一换
格式:DOCX , 页数:58 ,大小:1.78MB ,
资源ID:7112871      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7112871.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(STM32参考手册中文.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

STM32参考手册中文.docx

1、STM32 参考手册中文参考手册中文 23 串行外设接口串行外设接口(SPI)小容量产品 是指闪存存储器容量在 16K 至 32K 字节之间的 STM32F101xx、STM32F102xx 和 STM32F103xx 微控制器。中容量产品是指闪存存储器容量在 64K至 128K字节之间的 STM32F101xx、STM32F102xx 和 STM32F103xx 微控制器。大容量产品是指闪存存储器容量在 256K至 512K字节之间的 STM32F101xx 和STM32F103xx 微控 制器。互联型产品是指 STM32F105xx 和 STM32F107xx 微控制器。除非特别说明,本章

2、描述的模块适用于整个 STM32F10 xxx 微控制器系列。23.1 SPI 简介简介 在大容量产品和互联型产品上,SPI接口可以配置为支持 SPI协议或者支持 I2S 音频协议。SPI接 口默认工作在 SPI方式,可以通过软件把功能从 SPI模式切换到 I2S 模式。在小容量和中容量产品上,不支持 I2S 音频协议。串行外设接口(SPI)允许芯片与外部设备以半/全双工、同步、串行方式通信。此接口可以被配置 成主模式,并为外部从设备提供通信时钟(SCK)。接口还能以多主配置方式工作。它可用于多种用途,包括使用一条双向数据线的双线单工同步传输,还可使用CRC 校验的可靠 通信。I2S 也是一种

3、 3 引脚的同步串行接口通讯协议。它支持四种音频标准,包括飞利浦I2S 标准,MSB 和 LSB对齐标准,以及 PCM 标准。它在半双工通讯中,可以工作在主和从 2种模式下。当它作为 主设备时,通过接口向外部的从设备提供时钟信号。警告:由于 SPI3/I2S3 的部 分引 脚 与 JTAG 引脚 共享(SPI3_NSS/I2S3_WS 与 JTDI,SPI3_SCK/I2S3_CK 与 JTDO),因此这些引脚不受 IO控制器控制,他们(在每次复位后)被默认保留为 JTAG用途。如果用户想把引脚配置给 SPI3/I2S3,必须(在调试时)关闭 JTAG并切换至 SWD 接口,或者(在标准应用时

4、)同时关闭 JTAG和 SWD接口。详见第 8.3.5节:JTAG/SWD 复用功能重映射。23.2 SPI 和和 I2S 主要特征主要特征 23.2.1 SPI 特征特征 3 线全双工同步传输 带或不带第三根双向数据线的双线单工同步传输 8 或 16位传输帧格式选择 主或从操作 支持多主模式 8 个主模式波特率预分频系数(最大为 fPCLK/2)从模式频率(最大为 fPCLK/2)主模式和从模式的快速通信 主模式和从模式下均可以由软件或硬件进行 NSS 管理:主/从操作模式的动态改变 可编程的时钟极性和相位 可编程的数据顺序,MSB在前或 LSB在前 可触发中断的专用发送和接收标志 SPI总

5、线忙状态标志 支持可靠通信的硬件 CRC 在发送模式下,CRC值可以被作为最后一个字节发送 在全双工模式中对接收到的最后一个字节自动进行 CRC 校验 可触发中断的主模式故障、过载以及 CRC错误标志 支持 DMA功能的 1 字节发送和接收缓冲器:产生发送和接受请求 23.2.2 I2S 功能功能 单工通信(仅发送或接收)主或者从操作 8 位线性可编程预分频器,获得精确的音频采样频率(8KHz 到 96kHz)数据格式可以是 16 位,24位或者 32位 音频信道固定数据包帧为 16 位(16位数据帧)或 32位(16、24 或 32 位数据帧)可编程的时钟极性(稳定态)从发送模式下的下溢标志

6、位和主/从接收模式下的溢出标志位 16 位数据寄存器用来发送和接收,在通道两端各有一个寄存器 支持的 I2S 协议:I2S 飞利浦标准 MSB对齐标准(左对齐)LSB对齐标准(右对齐)PCM 标准(16位通道帧上带长或短帧同步或者 16位数据帧扩展为 32位通道帧)数据方向总是 MSB在先 发送和接收都具有 DMA能力 主时钟可以输出到外部音频设备,比率固定为 256xFs(Fs 为音频采样频率)在互联型产品中,两个 I2S 模块(I2S2 和 I2S3)有一个专用的 PLL(PLL3),产生更加精准得时钟 23.3 SPI 功能描述功能描述 23.3.1 概述概述 SPI的方框图见下图。图

7、209 SPI框图 通常 SPI通过 4 个引脚与外部器件相连:MISO:主设备输入/从设备输出引脚。该引脚在从模式下发送数据,在主模式下接收数据。MOSI:主设备输出/从设备输入引脚。该引脚在主模式下发送数据,在从模式下接收数据。SCK:串口时钟,作为主设备的输出,从设备的输入 NSS:从设备选择。这是一个可选的引脚,用来选择主/从设备。它的功能是用来作为“片 选引脚”,让主设备可以单独地与特定从设备通讯,避免数据线上的冲突。从设备的 NSS 引脚可以由主设备的一个标准 I/O 引脚来驱动。一旦被使能(SSOE位),NSS 引脚也可以作为 输出引脚,并在 SPI处于主模式时拉低;此时,所有的

8、 SPI设备,如果它们的 NSS 引脚连接 到主设备的 NSS 引脚,则会检测到低电平,如果它们被设置为 NSS 硬件模式,就会自动进 入从设备状态。当配置为主设备、NSS 配置为输入引脚(MSTR=1,SSOE=0)时,如果 NSS 被拉低,则这个 SPI设备进入主模式失败状态:即 MSTR 位被自动清除,此设备进入从模式(参见)下图是一个单主和单从设备互连的例子。图 210 单主和单从应用 1.这里 NSS 引脚设置为输入 MOSI脚相互连接,MISO脚相互连接。这样,数据在主和从之间串行地传输(MSB位在前)。通信总是由主设备发起。主设备通过 MOSI脚把数据发送给从设备,从设备通过MI

9、SO引脚回传 数据。这意味全双工通信的数据输出和数据输入是用同一个时钟信号同步的;时钟信号由主设 备通过 SCK脚提供。从选择(NSS)脚管理 有 2种 NSS 模式:软件 NSS 模式:可以通过设置 SPI_CR1 寄存器的 SSM 位来使能这种模式(见图211)。在这种 模式下 NSS 引脚可以用作它用,而内部 NSS 信号电平可以通过写SPI_CR1 的 SSI位来驱动 硬件 NSS 模式,分两种情况:NSS 输出被使能:当 STM32F10 xxx 工作为主 SPI,并且 NSS 输出已经通过SPI_CR2 寄存 器的 SSOE 位使能,这时 NSS 引脚被拉低,所有 NSS 引脚与这

10、个主 SPI的 NSS 引脚相连并 配置为硬件 NSS 的 SPI设备,将自动变成从 SPI设备。当一个 SPI设备需要发送广播数据,它必须拉低 NSS 信号,以通知所有其它的设备它是主 设备;如果它不能拉低 NSS,这意味着总线上有另外一个主设备在通信,这时将产生一个 硬件失败错误(Hard Fault)。NSS 输出被关闭:允许操作于多主环境。111 2016-08-09 09:13:27-在理解下啊 图 211 硬件/软件的从选择管理 时钟信号的相位和极性时钟信号的相位和极性 SPI_CR 寄存器的 CPOL和 CPHA位,能够组合成四种可能的时序关系。CPOL(时钟极性)位控制 在没有

11、数据传输时时钟的空闲状态电平,此位对主模式和从模式下的设备都有效。如果 CPOL被 清0,SCK 引脚在空闲状态保持低电平;如果 CPOL被置1,SCK 引脚在空闲状态保持高电平。如果 CPHA(时钟相位)位被置1,SCK时钟的第二个边沿(CPOL位为 0时就是下降沿,CPOL位 为1时就是上升沿)进行数据位的采样,数据在第二个时钟边沿被锁存。如果 CPHA位被清0,SCK 时钟的第一边沿(CPOL位为0时就是下降沿,CPOL位为1时就是上升沿)进行数据位采 样,数据在第一个时钟边沿被锁存。CPOL时钟极性和 CPHA时钟相位的组合选择数据捕捉的时钟边沿。图 212显示了 SPI传输的 4 种

12、 CPHA 和 CPOL位组合。此图可以解释为主设备和从设备的 SCK脚、MISO脚、MOSI脚直接连接的主或从时序图。注意:1.在改变 CPOL/CPHA 位之前,必须清除 SPE位将 SPI禁止。2.主和从必须配置成相同的时序模式。主和从必须配置成相同的时序模式。3.SCK的空闲状态必须和 SPI_CR1 寄存器指定的极性一致(CPOL为1时,空闲时应上拉 SCK 为 高电平;CPOL为0时,空闲时应下拉 SCK 为低电平)。4.数据帧格式(8位或 16位)由 SPI_CR1 寄存器的 DFF位选择,并且决定发送/接收的数据长度。图 212 数据时钟时序图 数据帧格式 根据 SPI_CR1

13、 寄存器中的 LSBFIRST 位,输出数据位时可以 MSB在先也可以 LSB在先。根据 SPI_CR1 寄存器的 DFF位,每个数据帧可以是 8 位或是 16位。所选择的数据帧格式对发送和/或接收都有效。23.3.2 配置配置 SPI 为从模式为从模式 在从模式下,SCK 引脚用于接收从主设备来的串行时钟。SPI_CR1 寄存器中BR2:0的设置不影 响数据传输速率。注:注:建议在主设备发送时钟之前使能建议在主设备发送时钟之前使能 SPI 从设备,否则可能会发生意外的数据传从设备,否则可能会发生意外的数据传输。在通信时钟的第输。在通信时钟的第 一个边沿到来之前或正在进行的通信结束之前,从设备

14、的数据寄一个边沿到来之前或正在进行的通信结束之前,从设备的数据寄存器必须就绪。在使能从设备存器必须就绪。在使能从设备 和主设备之前,通信和主设备之前,通信时钟的极性必须处于稳定的数值。时钟的极性必须处于稳定的数值。请按照以下步骤配置 SPI为从模式:配置步骤 1.设置 DFF位以定义数据帧格式为 8位或 16位。2.选择 CPOL和 CPHA 位来定义数据传输和串行时钟之间的相位关系(见图 212)。为保证正确 的数据传输,从设备和主设备的 CPOL和 CPHA位必须配置成相同的方式。3.帧格式(SPI_CR1 寄存器中的 LSBFIRST 位定义的”MSB在前”还是”LSB在前”)必须与主设

15、备 相同。4.硬件模式下(参考从选择(NSS)脚管理部分),在完整的数据帧(8位或 16 位)传输过程中,NSS 引脚必须为低电平。在 NSS 软件模式下,设置 SPI_CR1 寄存器中的SSM 位并清除 SSI 位。5.清除 MSTR 位、设置 SPE位(SPI_CR1 寄存器),使相应引脚工作于 SPI模式下。在这个配置中,MOSI引脚是数据输入,MISO 引脚是数据输出。数据发送过程数据发送过程 在写操作中,数据字被并行地写入发送缓冲器。当从设备收到时钟信号,并且在 MOSI引脚上出现第一个数据位时,发送过程开始(译注:此时 第一个位被发送出去)。余下的位(对于 8位数据帧格式,还有 7

16、 位;对于 16位数据帧格式,还有 15 位)被装进移位寄存器。当发送缓冲器中的数据传输到移位寄存器时,SPI_SP 寄存器的 TXE 标志被设置,如果设置了 SPI_CR2 寄存器的TXEIE位,将会产生中断。数据接收过程数据接收过程 对于接收器,当数据接收完成时:移位寄存器中的数据传送到接收缓冲器,SPI_SR 寄存器中的 RXNE 标志被设置。如果设置了 SPI_CR2 寄存器中的 RXNEIE 位,则产生中断。在最后一个采样时钟边沿后,RXNE 位被置1,移位寄存器中接收到的数据字节被传送到接收缓 冲器。当读 SPI_DR 寄存器时,SPI设备返回这个接收缓冲器的数值。读 SPI_DR

17、 寄存器时,RXNE 位被清除。23.3.3 配置配置 SPI 为主模式为主模式 在主配置时,在 SCK 脚产生串行时钟。配置步骤配置步骤 1.通过 SPI_CR1 寄存器的 BR2:0位定义串行时钟波特率。2.选择 CPOL和 CPHA 位,定义数据传输和串行时钟间的相位关系(见图 212)。3.设置 DFF位来定义 8 位或 16位数据帧格式。4.配置 SPI_CR1 寄存器的 LSBFIRST 位定义帧格式。5.如果需要 NSS 引脚工作在输入模式,硬件模式下,在整个数据帧传输期间应把NSS 脚连接 到高电平;在软件模式下,需设置 SPI_CR1 寄存器的 SSM 位和 SSI位。如果

18、NSS 引脚工作 在输出模式,则只需设置 SSOE 位。6.必须设置 MSTR 位和 SPE位(只当 NSS 脚被连到高电平,这些位才能保持置位)。在这个配置中,MOSI引脚是数据输出,而 MISO引脚是数据输入。数据发送过程数据发送过程 当写入数据至发送缓冲器时,发送过程开始。在发送第一个数据位时,数据字被并行地(通过内部总线)传入移位寄存器,而后串行地移出到 MOSI脚上;MSB在先还是 LSB在先,取决于 SPI_CR1 寄存器中的 LSBFIRST 位的设置。数据从 发送缓冲器传输到移位寄存器时 TXE标志将被置位,如果设置了 SPI_CR1 寄存器中的 TXEIE 位,将产生中断。数

19、据接收过程数据接收过程 对于接收器来说,当数据传输完成时:传送移位寄存器里的数据到接收缓冲器,并且 RXNE 标志被置位。如果设置了 SPI_CR2 寄存器中的 RXNEIE 位,则产生中断。在最后采样时钟沿,RXNE位被设置,在移位寄存器中接收到的数据字被传送到接收缓冲器。读 SPI_DR 寄存器时,SPI设备返回接收缓冲器中的数据。读 SPI_DR 寄存器将清除 RXNE位。一旦传输开始,如果下一个将发送的数据被放进了发送缓冲器,就可以维持一个连续的传输 流。在试图写发送缓冲器之前,需确认 TXE标志应该为1。注:在 NSS 硬件模式下,从设备的 NSS 输入由 NSS 引脚控制或另一个由

20、软件驱动的 GPIO引脚控制。23.3.4 配置配置 SPI 为单工通信为单工通信 SPI模块能够以两种配置工作于单工方式:1 条时钟线和 1条双向数据线;1 条时钟线和 1条数据线(只接收或只发送);1条时钟线和 1 条双向数据线(BIDIMODE=1)设置 SPI_CR1 寄存器中的BIDIMODE 位而启用此模式。在这个模式下,SCK 引脚作为时钟,主 设备使用 MOSI引脚而从设备使用 MISO 引脚作为数据通信。传输的方向由 SPI_CR1 寄存器里的 BIDIOE控制,当这个位是1的时候,数据线是输出,否则是输入。1 条时钟和条时钟和 1 条单向数据线条单向数据线(BIDIMODE

21、=0)在这个模式下,SPI模块可以或者作为只发送,或者作为只接收。只发送模式类似于全双工模式(BIDIMODE=0,RXONLY=0):数据在发送引脚(主模式时是 MOSI、从模式时是 MISO)上传输,而接收引脚(主模式时是 MISO、从模式时是 MOSI)可以 作为通用的 I/O使用。此时,软件不必理会接收缓冲器中的数据(如果读出数据寄存器,它不 包含任何接收数据)。在只接收模式,可以通过设置 SPI_CR2 寄存器的 RXONLY位而关闭 SPI的输出功能;此时,发送引脚(主模式时是 MOSI、从模式时是 MISO)被释放,可以作为其它功能使用。配置并使能 SPI模块为只接收模式的方式是

22、:在主模式时,一旦使能 SPI,通信立即启动,当清除 SPE位时立即停止当前的接收。在此模 式下,不必读取 BSY标志,在 SPI通信期间这个标志始终为1。在从模式时,只要 NSS 被拉低(或在 NSS 软件模式时,SSI位为0)同时 SCK有时钟脉冲,SPI就一直在接收。23.3.5 数据发送与接收过程数据发送与接收过程 接收与发送缓冲器接收与发送缓冲器 在接收时,接收到的数据被存放在一个内部的接收缓冲器中;在发送时,在被发送之前,数据 将首先被存放在一个内部的发送缓冲器中。对 SPI_DR 寄存器的读操作,将返回接收缓冲器的内容;写入 SPI_DR 寄存器的数据将被写入发 送缓冲器中。主模

23、式下开始传输主模式下开始传输 全双工模式(BIDIMODE=0 并且 RXONLY=0)当写入数据到 SPI_DR 寄存器(发送缓冲器)后,传输开始;在传送第一位数据的同时,数据被并行地从发送缓冲器传送到 8 位的移位寄存器中,然后按顺序被串行地移位送到 MOSI引脚上;与此同时,在 MISO 引脚上接收到的数据,按顺序被串行地移位进入 8位的移位寄存器 中,然后被并行地传送到 SPI_DR 寄存器(接收缓冲器)中。单向的只接收模式(BIDIMODE=0 并且 RXONLY=1)SPE=1 时,传输开始;只有接收器被激活,在 MISO引脚上接收到的数据,按顺序被串行地移位进入 8位的移 位寄存

24、器中,然后被并行地传送到 SPI_DR 寄存器(接收缓冲器)中。双向模式,发送时(BIDIMODE=1 并且 BIDIOE=1)当写入数据到 SPI_DR 寄存器(发送缓冲器)后,传输开始;在传送第一位数据的同时,数据被并行地从发送缓冲器传送到 8 位的移位寄存器中,然后按顺序被串行地移位送到 MOSI引脚上;不接收数据。双向模式,接收时(BIDIMODE=1 并且 BIDIOE=0)SPE=1 并且 BIDIOE=0 时,传输开始;在 MOSI引脚上接收到的数据,按顺序被串行地移位进入 8位的移位寄存器中,然后被 并行地传送到 SPI_DR 寄存器(接收缓冲器)中。不激活发送器,没有数据被串

25、行地送到 MOSI引脚上。从模式下开始传输从模式下开始传输 全双工模式(BIDIMODE=0 并且 RXONLY=0)当从设备接收到时钟信号并且第一个数据位出现在它的 MOSI时,数据传输开始,随 后的数据位依次移动进入移位寄存器;与此同时,在传输第一个数据位时,发送缓冲器中的数据被并行地传送到 8位的移位 寄存器,随后被串行地发送到 MISO 引脚上。软件必须保证在 SPI主设备开始数据传 输之前在发送寄存器中写入要发送的数据。单向的只接收模式(BIDIMODE=0 并且 RXONLY=1)当从设备接收到时钟信号并且第一个数据位出现在它的 MOSI时,数据传输开始,随 后数据位依次移动进入移

26、位寄存器;不启动发送器,没有数据被串行地传送到 MISO引脚上。双向模式,发送时(BIDIMODE=1 并且 BIDIOE=1)当从设备接收到时钟信号并且发送缓冲器中的第一个数据位被传送到 MISO引脚上的 时候,数据传输开始;在第一个数据位被传送到 MISO引脚上的同时,发送缓冲器中要发送的数据被平行地 传送到 8位的移位寄存器中,随后被串行地发送到 MISO引脚上。软件必须保证在 SPI 主设备开始数据传输之前在发送寄存器中写入要发送的数据;不接收数据。双向模式,接收时(BIDIMODE=1 并且 BIDIOE=0)当从设备接收到时钟信号并且第一个数据位出现在它的 MOSI时,数据传输开始

27、;从 MISO 引脚上接收到的数据被串行地传送到 8位的移位寄存器中,然后被平行地传送 到 SPI_DR 寄存器(接收缓冲器);不启动发送器,没有数据被串行地传送到 MISO引脚上。处理数据的发送与接收处理数据的发送与接收 当数据从发送缓冲器传送到移位寄存器时,设置 TXE标志(发送缓冲器空),它表示内部的发送缓 冲器可以接收下一个数据;如果在 SPI_CR2 寄存器中设置了 TXEIE位,则此时会产生一个中 断;写入 SPI_DR 寄存器即可清除 TXE位。注:注:在写入发送缓冲器之前,软件必须确认在写入发送缓冲器之前,软件必须确认 TXE 标志为标志为1,否则新的数据会覆,否则新的数据会覆

28、盖已经在发送缓冲器盖已经在发送缓冲器 中的数据。中的数据。Txe 为为 0 时发送新数据时发送新数据 在采样时钟的最后一个边沿,当数据被从移位寄存器传送到接收缓冲器时,设置RXNE标志(接 收缓冲器非空);它表示数据已经就绪,可以从 SPI_DR 寄存器读出;如果在 SPI_CR2 寄存器中 设置了 RXNEIE 位,则此时会产生一个中断;读出 SPI_DR 寄存器即可清除 RXNIE 标志位。在一些配置中,传输最后一个数据时,可以使用 BSY标志等待数据传输的结束。主或从模式下(BIDIMODE=0 并且 RXONLY=0)全双工发送和接收过程模式 软件必须遵循下述过程,发送和接收数据(见图

29、 213和图 214):1.设置 SPE位为1,使能 SPI模块;2.在 SPI_DR 寄存器中写入第一个要发送的数据,这个操作会清除 TXE标志;3.等待 TXE=1,然后写入第二个要发送的数据。等待 RXNE=1,然后读出SPI_DR 寄存器并 获得第一个接收到的数据,读 SPI_DR 的同时清除了 RXNE位。重复这些操作,发送后续 的数据同时接收 n-1个数据;4.等待 RXNE=1,然后接收最后一个数据;5.等待 TXE=1,在 BSY=0 之后关闭 SPI模块。也可以在响应 RXNE 或 TXE标志的上升沿产生的中断的处理程序中实现这个过程。图 213 主模式、全双工模式下(BID

30、IMODE=0 并且 RXONLY=0)连续传输时,TXE/RXNE/BSY 的变化示意图 图 214 从模式、全双工模式下(BIDIMODE=0 并且 RXONLY=0)连续传输时,TXE/RXNE/BSY 的变化示意图 只发送过程只发送过程(BIDIMODE=0 并且并且 RXONLY=0)在此模式下,传输过程可以简要说明如下,使用 BSY位等待传输的结束(见图 215和图 216):1.设置 SPE位为1,使能 SPI模块;2.在 SPI_DR 寄存器中写入第一个要发送的数据,这个操作会清除 TXE标志;3.等待 TXE=1,然后写入第二个要发送的数据。重复这个操作,发送后续的数据;4.

31、写入最后一个数据到 SPI_DR 寄存器之后,等待 TXE=1;然后等待 BSY=0,这表示最后一 个数据的传输已经完成。也可以在响应 TXE 标志的上升沿产生的中断的处理程序中实现这个过程。注:1.对于不连续的传输,在写入 SPI_DR 寄存器的操作与设置 BSY 位之间有 2个 APB时钟周期的延 迟,因此在只发送模式下,写入最后一个数据后,最好先等待TXE=1,然后再等待 BSY=0。2 只发送模式下,在传输 2个数据之后,由于不会读出接收到的数据,SPI_SR寄存器中的 OVR 位 会变为1。(译注:软件不必理会这个 OVR 标志位)图 215 主设备只发送模式(BIDIMODE=0

32、并且 RXONLY=0)下连续传输时,TXE/BSY变化示 意图 图 216 从设备只发送模式(BIDIMODE=0 并且 RXONLY=0)下连续传输时,TXE/BSY变化示意 图 双向发送过程双向发送过程(BIDIMODE=1 并且并且 BIDIOE=1)在此模式下,操作过程类似于只发送模式,不同的是:在使能 SPI模块之前,需要在 SPI_CR2 寄 存器中同时设置 BIDIMODE 和 BIDIOE位为1。单向只接收模式(BIDIMODE=0 并且 RXONLY=1)在此模式下,传输过程可以简要说明如下(见):1.在 SPI_CR2 寄存器中,设置 RXONLY=1;2.设置 SPE=

33、1,使能 SPI模块:a)主模式下,立刻产生 SCK 时钟信号,在关闭 SPI(SPE=0)之前,不断地接收串行数据;b)从模式下,当 SPI主设备拉低 NSS 信号并产生 SCK时钟时,接收串行数据。3.等待 RXNE=1,然后读出 SPI_DR 寄存器以获得收到的数据(同时会清除 RXNE位)。重复这 个操作接收所有数据。也可以在响应 RXNE 标志的上升沿产生的中断的处理程序中实现这个过程。注:如果在最后一个数据传输结束后关闭 SPI模块,请按照第 23.3.8节的建议操作。图 217 只接收模式(BIDIMODE=0 并且 RXONLY=1)下连续传输时,RXNE 变化示意图 单向接收过程单向接收过程(BIDIMODE=1 并且并且 BIDIOE=0)在此模式下,操作过程类似于只接收模式,不同的是:在使能 SPI模块之前,需要在 SPI_CR2 寄 存器中设置 BIDIMODE 为

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1