童雨竹 发表于 2025-5-4 07:16

SPI做从机时主机发送数据总是出错?

我只接收几字节,主机那边就报错,是CS没处理好吗?

Clyde011 发表于 2025-5-4 07:20

有些驱动库要补NOP时钟,不然主机收不到。

公羊子丹 发表于 2025-5-4 07:20

CS有没有配成硬件控制?

周半梅 发表于 2025-5-4 07:21

从机响应延迟太大也可能误触发错误。

帛灿灿 发表于 2025-5-4 07:22

SPI模式对上了吗?CPOL/CPHA别写反了。

童雨竹 发表于 2025-5-4 07:23

F103 SPI从机响应本身就慢,建议降速。

万图 发表于 2025-5-4 07:24

你主机是用什么芯片发的?

Wordsworth 发表于 2025-5-4 07:25

从机要先准备好数据再等CS触发。

Bblythe 发表于 2025-5-4 07:26

DMA模式更好接主机数据试试?

Pulitzer 发表于 2025-5-4 07:26

STM的SPI从机确实不太强悍,哈哈。

Uriah 发表于 2025-5-4 07:27

我用中断方式还好,但必须短帧。

一秒落纱 发表于 2025-5-14 15:05

时钟相位/极性(CPOL/CPHA)不匹配,STM32F1的SPI从机需与主机严格匹配时钟极性(CPOL)和相位(CPHA)。若主机配置为CPOL=0, CPHA=0(时钟空闲低电平,数据采样于第一个边沿),而从机配置为CPOL=1, CPHA=1,会导致数据采样时序错位。

夜阑风雨 发表于 2025-5-14 15:09

在主循环中持续检查SPI_I2S_GetFlagStatus(SPIx, SPI_I2S_FLAG_RXNE)并读取数据

远山寻你 发表于 2025-5-14 15:50

从机未正确检测NSS信号,硬件NSS引脚未连接:若主机通过硬件NSS(如PA4)控制从机,但未正确连接引脚,从机可能无法识别通信开始

别乱了阵脚 发表于 2025-5-14 16:00

软件NSS管理冲突,若从机配置为SPI_NSS_Soft(软件管理NSS),但主机通过硬件NSS控制,可能导致时序混乱

光辉梦境 发表于 2025-5-14 16:50

确保主机和从机的NSS引脚正确连接(如主机NSS→从机NSS)。统一NSS模式:主机和从机均使用硬件NSS或均使用软件NSS

三生万物 发表于 2025-5-14 17:00

通过SPI_I2S_ITConfig(SPIx, SPI_I2S_IT_RXNE, ENABLE)监听NSS上升沿/下降沿,触发SPI使能。

江河千里 发表于 2025-5-14 20:55

从机时钟分频器未配置:在从机模式下,SPI_BaudRatePrescaler无效(由主机时钟决定),但若主机时钟过快(如72MHz主频下SPI时钟未分频),可能导致从机采样窗口不足

淡漠安然 发表于 2025-5-14 22:00

中断处理延迟,若从机通过中断接收数据,但中断服务函数(ISR)执行时间过长,可能丢失数据。

冰春彩落下 发表于 2025-5-14 23:31

硬件线长差异,主机与从机之间的SPI时钟线(SCK)过长或负载电容过大,导致信号畸变
页: [1]
查看完整版本: SPI做从机时主机发送数据总是出错?