TM32-SPI-DMA.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
STM32-SPI-DMA

STM32-SPI-DMA 一、SPI 信号线说明 通常SPI 通过4 个引脚与外部器件相连:  MISO:主设备输入/从设备输出引脚。该引脚在从模式下发送数据,在主模式下接 收数据。  MOSI:主设备输出/从设备输入引脚。该引脚在主模式下发送数据,在从模式下接 收数据。  SCK:串口时钟,作为主设备的输出,从设备的输入  NSS:从设备选择。这是一个可选的引脚,用来选择主/从设备。它的功能是用来作 为“片选引脚”,让主设备可以单独地与特定从设备通讯,避免数据线上的冲突。 二、原理 MOSI 脚相互连接,MISO 脚相互连接。这样,数据在主和从之间串行地传输(MSB 位 在前)。 通信总是由主设备发起。主设备通过MOSI 脚把数据发送给从设备,从设备通过MISO 引脚回传数据。这意味全双工通信的数据输出和数据输入是用同一个时钟信号同步的;时钟 信号由主设备通过SCK 脚提供。 三、NSS 说明与注意点 NSS 分为内部引脚和外部引脚。 NSS 外部引脚可以作为输入信号或者输出信号,输入信号一般用作硬件方式从机的片 选,而输出信号一般用于主SPI 去片选与之相连的从SPI。 NSS 从设备选择有两种模式: 1、软件模式 可以通过设置SPI_CR1 寄存器的SSM 位来使能这种模式,当它为 1 时,NSS 引脚 上的电平由SSI 决定。在这种模式下NSS 外部引脚可以用作它用,而内部NSS 信号电平 可以通过写SPI_CR1 的SSI 位来驱动。 2、硬件模式 两种方式: (1)对于主SPI,NSS 可以直接接高电平,对于从SPI,可以直接接低电平。 (2)当STM32F10xxx 工作为主SPI,并且NSS 输出已经通过SPI_CR2 寄存器的SSOE 位使能,这时主机的NSS 讲作为输出信号,引脚信号被拉低,所有NSS 引脚与这个主SPI 的NSS 引脚相连并配置为硬件NSS 的SPI 设备,将自动变成从SPI 设备。 此时两个的NSS 信号线可以接个上拉电阻直连。 四、DMA 说明 DMA 是AMBA 的先进高性能总线(AHB)上的设备,它有2 个AHB 端口:一个是从端 口,用于配置DMA ,另一个是主端口,使得DMA 可以在不同的从设备之间传输数据。 DMA 的作用是在没有Cortex-M3 核心的干预下,在后台完成数据传输。在传输数据的 过程中,主处理器可以执行其它任务,只有在整个数据块传输结束后,需要处理这些数据时 才会中断主处理器的操作。它可以在对系统性能产生较小影响的情况下,实现大量数据的传 输。 五、SPI_DMA 的通信过程  设置外设地址  设置存储器地址  设置传输数据量  设置通道的配置信息  使能DMA 通道,启动传输  发送时,在每次TXE 被设置为’1’时发出DMA 请求,DMA 控制器则写数据至SPI _DR 寄存器,TXE 标志因此而被清除。  接收时,在每次RXNE 被设置为’1’时发出DMA 请求,DMA 控制器则从SPI_DR 寄存器读出数据,RXNE 标志因此而被清除。 六、相关代码 这里使用的是SPI1 SPI_DMA 配置 /****************************************************************************** * Function Name : SPI1_DMA_Configuration * Description : 配置SPI1_RX 的DMA 通道2,SPI1_TX 的DMA 通道3 * Input : None * Output : None * Return : None * Attention : ******************************************************************************/ void SPI1_DMA_Configuration( void ) { DMA_InitTypeDef DMA_InitStructure; /* DMA1 Channel2 (triggered by SPI1 Rx

文档评论(0)

rovend + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档