你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

st-img
chrome
st-img
firefox
st-img
safari
st-img
ie8及以上
shequ.stmicroelectronics.cn
  • ST意法半导体官网
  • STM32中文官网
  • ST全球论坛
登录/注册
  • 首页
  • 技术问答
  • 话题
  • 资源
  • 创客秀
  • 视频
  • 标签
  • 积分商城
  • 每日签到
GlossTsai

GlossTsai

 

回答数 0 关注数 0
关注 私信
  • 动态99
  • 提问
  • 回答0
  • 创客秀 0
  • 分享 0
  • 关注0
7 回答

STM32F4作为SPI从机,主机发送完数据后,从机没有正确进入中断

STM32F4 SPI
GlossTsai GlossTsai 最优答案 回答时间: 2024-4-22 11:07

是的,我将SPI_EndRxTxTransaction函数中的等待BSY位的阻塞部分注释掉,就不再发生这个情况了。 /* Wait BSY flag during 1 Byte time transfer in case of Full-Duplex and Tx transfer * If Timeout is reached, the transfer is considered as finish. * User have to calculate the timeout value to fit with the time of 1 byte transfer. * This time is directly link with the SPI clock from Master device. */ 看注释,需要修改宏SPI_BSY_FLAG_WORKAROUND_TIMEOUT的值,用来匹配1字节的通信时间。我们的波特率为8MHz左右,那么通信1字节需要1us左右。而HAL库默认是1000us,因此经常在此阻塞,直到超时,或者到下一帧的第一个字节被HAL库接收。 line217 #define SPI_DEFAULT_TIMEOUT 100U line218 #define SPI_BSY_FLAG_WORKAROUND_TIMEOUT 3U /*!< Timeout 1000 µs */

赞0
3 回答

STM32F4作为SPI从机,在主机时钟结束后,MISO依然有输出。

SPI
butterflyspring butterflyspring 回答时间: 2024-4-16 11:32

找到问题点就好,感谢反馈~~

赞0
GlossTsai GlossTsai


阅读作者更多的帖子

所在话题

参与活动

  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    线下 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    网络 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    网络 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    网络 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    线下 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    线下 2020-10-16