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

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

alangxl

 

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

STM32F4 SPI 动作时,软件片选信号被拉高,IO口程序逻辑失控

STM32F4
stm32liusheng stm32liusheng 回答时间: 2023-5-15 09:40

最近也遇到了这个问题,来解答一下 CS被提早拉高的原因, 先从是发送数据缓冲区空判定说起 while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET); 这里的判断是 判断的DR寄存器空,当DR寄存器空的时候,实际数DR寄存器数据并行移入8bit的移位寄存器,此时本条while判断就跳出来。往下执行代码了。 而实际的SPI物理层的传输还在进行,即移位寄存器的8个bit,一个接着一个在SPI总线上传输 当SPI速度为21Mhz时。传输一个bit的时间为48ns。一个字节就是384ns; 同理,基于SPI通信双向性,接收缓冲区判定非空的时候,判定的是从DR有数据或者接受满了 当接收到一个bit在DR中就结束判断了。

赞0
alangxl alangxl


阅读作者更多的帖子

所在话题

参与活动

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

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

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

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

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

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

    线下 2020-10-16