• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

STM32的SPI可以用DMA的方式发送数据吗

loudian 2019-03-23 浏览量:1096
需要配置一些什么地方
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • SPI_DMA的通信过程

    设置外设地址
    设置存储器地址
    设置传输数据量
    设置通道的配置信息
    使能DMA通道,启动传输
     

     发送时,在每次TXE被设置为’1’时发出DMA请求,DMA控制器则写数据至SPI_DR寄存器,TXE标志因此而被清除。
     接收时,在每次RXNE被设置为’1’时发出DMA请求,DMA控制器则从SPI_DR寄存器读出数据,RXNE标志因此而被清除。
    • 发布于 2019-03-23
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:5
  • 要及时监测TXE.在SPI在1M以上波特率传输时传输一位时间为1us导致软件不能及时判断此时可以用dma的方式来进行SPI传输.
    • 发布于2019-03-23
    • 举报
    • 评论 0
    • 1
    • 0

  • 可以的,dma支持所有的外设,spi肯定支持,只要配置spi数据寄存器地址,还有内存地址,数据长度类型等等
    • 发布于2019-03-23
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以,首先要开启STM32SPI功能,然后找到这个SPI对应的DMA,一般会有收和发两个通道的,使能对应的DMA通道,然后将对应的DMA通道和SPI联系起来,因为STM32的DMA每个通道可能对应多个功能,需要指定其中一个,然后SPI收发数据的时候,直接对DMA通道进行读写就行

    建议用库操作会简单一点

    • 发布于2019-03-23
    • 举报
    • 评论 0
    • 0
    • 0

  • DMA通道与外设是对应的关系的,只要把与SPI接口对应的DMA通道使能并配置好就是可以使用DMA方式处理SPI数据了
    • 发布于2019-03-23
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以的,可以看下cubeMX自带的例程
    • 发布于2019-03-24
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

STM32的SPI可以用DMA的方式发送数据吗