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

调试两块板子STM32 SPI DMA主从机通信遇到从机接收数据出错的问题

阳光守望者 2016-01-27 浏览量:2310
调试两块板子STM32  SPI DMA主从通信,主机是STM32F107   SPI3 DMA2通道2主机发送时钟和MOSI波形正常,从机stm32f103 SPI2  DMA1通道4第一次接收是对的,以后几次就会出错,仿真按数据看似有规律,每隔几个数据就是对的。这是我主机发送的数组,
#define BufferSize         32
uint8_t SPI_MASTER_Buffer_Tx[BufferSize] = {0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,
                                             0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0x10,
                                             0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,
                                             0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,0x20};
从机接收的数据,大家分析一下是什么原因,谢谢 调试两块板子STM32 SPI DMA主从机通信遇到从机接收数据出错的问题调试两块板子STM32 SPI DMA主从机通信遇到从机接收数据出错的问题
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • http://www.openedv.com/posts/list/43538.htm    楼主参考下这篇文章

     
     配置NSS引脚,405跟303把SPI配置修改为硬件NSS和TI Mode模式,再Debug就看到从机的接收Buffer上正常的数据。

    • 发布于 2016-01-27
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:9
  • 建议还是将spidma的一些配置代码贴出来,单从结果很难定位问题的
    • 发布于2016-01-27
    • 举报
    • 评论 0
    • 0
    • 0

  • JLINK的问题。。你可以试试将数据通过串口打印出来!!
    • 发布于2016-01-27
    • 举报
    • 评论 0
    • 0
    • 0

  • 从机都是8899AABB这样重叠的错,请查一下从机的SPI接收配置,尤其是时钟速度、边沿。
    • 发布于2016-01-28
    • 举报
    • 评论 0
    • 0
    • 0

  • SPI 通讯时钟和传输速率要配好,并且主从模式要配好,如果实时性要求高的话,可以使用SPI中断来处理。我记得以前项目里用SPI通讯,调试时需要借助示波器,根据波形来辅助判断。希望对楼主有帮助。
    • 发布于2016-01-29
    • 举报
    • 评论 0
    • 0
    • 0

  • 我也遇到过,应该是jlink的问题。调试时也这样。数据间隔出问题,但是运行时候和打印出来时没问题的。
    • 发布于2016-01-29
    • 举报
    • 评论 0
    • 0
    • 0

  • jilink这个东西不要过度依赖,示波器才是王道
    • 发布于2016-01-31
    • 举报
    • 评论 0
    • 0
    • 0

  • 这是DMA机制决定的, 只要从机不延时接收数据或者保持与主机时钟同步,数据不会出错。谁有更好的控制DMA开关的方法可以讨论一下
    • 发布于2016-01-31
    • 举报
    • 评论 0
    • 0
    • 0

  • 中断 或是增加额外的握手?
    • 发布于2016-02-01
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

调试两块板子STM32 SPI DMA主从机通信遇到从机接收数据出错的问题