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

[复制链接]
 楼主| 童雨竹 发表于 2025-5-4 07:16 | 显示全部楼层 |阅读模式
我只接收几字节,主机那边就报错,是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)不匹配,STM32F1SPI从机需与主机严格匹配时钟极性(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)过长或负载电容过大,导致信号畸变

您需要登录后才可以回帖 登录 | 注册

本版积分规则

155

主题

5890

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部