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

关于两块STM32之间的SPI通信,应答机制缺失

PG_CPZ 2018-08-21 浏览量:1040
最近在弄SPI,原子给出的SPI例程是驱动W25Q256实现SPI FLASH数据读写,F4作为主机,W25Q256作为从机,在主机片选从机发送命令,完成读写操作,这里面W25Q256是完全处于接收响应的状态,所以能保证数据的完整性。
但是现在有个问题,SPI没有应答机制,如果SPI放在两个STM32芯片上面,F4作为主机,F1作为从机,主机接收从机发来的数据,这里面会不会发生数据丢失的问题,也就是说,假如F4发送读取命令时,F1被片选却正好进入某个中断,那此时F4的操作命令不就丢失了嘛。
有人做过两块芯片的SPI通信吗,求大神解答
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 应答机制,要自己通过SPI中的数据协议进行处理,而没有IIC那样的应答的
    • 发布于 2018-08-21
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:7
  • 这需要自己编程判断中断是不是在接收时可以关闭

    不然就判断数据完整性 重新发送

    • 发布于2018-08-21
    • 举报
    • 评论 0
    • 0
    • 0

  • SPI 通信是双工的,发送的同时,也接受了,不管你要不要收到的数据,只要发数据同时也收数据
    • 发布于2018-08-21
    • 举报
    • 评论 0
    • 0
    • 0

  • spi没有应答机制,可以通过读寄存确认接收到没有
    • 发布于2018-08-21
    • 举报
    • 评论 0
    • 0
    • 0

  • SPI的通信协议就有应答机制的,你根据协议的时序来进行操作并进行应答就可以,当然使用硬件的SPI操作起来更简单
    • 发布于2018-08-24
    • 举报
    • 评论 0
    • 0
    • 0

  • 应答机制是SPI传输层的东西,SPI的物理层是没有应答机制的​(应答位),楼主可以在SPI传输协议中加一个用于应答字节就可以了。

    • 发布于2018-08-26
    • 举报
    • 评论 0
    • 0
    • 0

  • 两块芯片的SPI通信一般是走DMA的,DMA除非你关闭了通道,否则不会丢数据的。且双机通信最好约定通信格式,加上起始位和长度,这样比较好
    • 发布于2018-08-31
    • 举报
    • 评论 0
    • 0
    • 0

  • SPI是全双工的通信栈,这个根据DMA也是可以进行操作传输的,但是要根据你的配置来设置
    • 发布于2018-09-18
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

关于两块STM32之间的SPI通信,应答机制缺失