跳转到主要内容

STM32F750

实战经验 | 一例SPI从机通讯异常的分析

cathy /

01、前言

客户在项目中使用STM32F750作为SPI从机,将主机下发的数据通过其它通讯接口转发,非常简单的功能,但是在通讯过程中时常会出现数据转发不全的现象,且会出现SPI OVERRUN的错误。

02、原因分析

2.1 代码逻辑

主机要下发数据前,通过一个IO口拉低,触发从机的EXTI下降沿中断,来通知从机准备接收来自主机的数据,从机启动SPI的DMA接收;随后主机开始下发不定长的数据;主机发送完数据后,经过足够的延时后,再将这个IO拉高,使从机产生一个上升沿中断,从而中止SPI的传输。从触发下降沿到开始下发数据,以及从触发上升沿后到下一次的下降沿的时序,都是通过主机的时序控制逻辑来保证预留足够的时间。

代码逻辑如下: