ST意法半导体
直播中

fanB

8年用户 1476经验值
擅长:20615
私信 关注
[问答]

SPI不启动的原因是什么?怎么解决?

我正在通过一个简单的 PDM 麦克风测试 SPI 外围设备。问题是 SPI 根本没有启动。CSTART 位(即开始传输的位)保持清零,即使在我设置该位之后也是如此。
现在,我注意到在我完成 SR 寄存器中的 SET_BIT 之后恰好设置了 EOT 位,它指示(传输结束)。问题是我没有得到任何数据,缓冲区和寄存器中也没有。
我认为问题可能是传输确实开始了,但它被 EOT 的上升立即停止了。
不知道如果我是对的,更多的是我不知道如何解决问题。

回帖(1)

潘福乔

2022-12-26 11:06:49
'H7 SPI 过于复杂,我不使用 'H7,但从我上面看到的情况来看,似乎


  • 您已经设置了每 8 位 10 帧的单纯形 Rx
  • 与单工 Rx 模式一样,SPI 在启用后立即生成时钟,它生成所有 10x8 时钟并自动清除 CSTART
  • SR.RXWNE 表示,FIFO中有数据;当您在调试器中显示 RXDR 寄存器时,您已经读出一个字,因此 FIFO 中已经没有完整的数据包
  • 你在抱怨“我没有得到任何数据”但这可能意味着你收到的全是 0,这可能是由于 GPIO 设置不正确,这就是为什么我说要读出并检查相关的 GPIO 寄存器内容并观察使用示波器或 LA 的 SPI 信号
举报

更多回帖

发帖
×
20
完善资料,
赚取积分