ST意法半导体
直播中

陈霞

7年用户 936经验值
私信 关注
[问答]

STM32F767 SPI从机出现怪异行为是怎么回事

将我的代码从 STM32F407 迁移到 STM32F767 后,我在使用 SPI 时遇到了一个奇怪的问题。
SPI 配置为从设备,并作为主设备与另一个 STM32F406 MCU 接口。从机接收到的数据有时会移位一两个字节。我正在使用 CMSIS 中间件 API。相同的源代码在为另一个 STM32F406(这是我的原始目标)编译时运行没有问题。我注意到SPI的数据寄存器(SPIx_DR)有时会被填充到第二个字节,即使Datasize(CR2 DR[0:3])设置为8位,DMA中的MSIZE和PSIZE均为0(BYTE) . 与STM32F4主控相比,数据寄存器始终只使用低8位
我没有启用 D_CACHE,因此我使用 SPI_DCACHE=0 编译了 CMSIS 驱动程序。它启用了 CRC 计算,并且没有报告双方的任何数据损坏。
主站能够正确接收数据。



回帖(2)

夏日余晖

2022-12-8 09:46:10
'F7 中的 SPI - 与 'F4 中的相比 - 包含一个 FIFO,并支持称为数据打包的东西。仔细阅读 RM 中的 SPI 章节并遵循指南。
请注意,在调试器中观察 SPI 寄存器可能会导致数据丢失/混淆。
举报

夏日余晖

2022-12-8 09:46:12
'F7 中的 SPI - 与 'F4 中的相比 - 包含一个 FIFO,并支持称为数据打包的东西。仔细阅读 RM 中的 SPI 章节并遵循指南。
请注意,在调试器中观察 SPI 寄存器可能会导致数据丢失/混淆。
举报

更多回帖

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