打印
[STM32F1]

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

[复制链接]
380|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
童雨竹|  楼主 | 2025-5-4 07:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我只接收几字节,主机那边就报错,是CS没处理好吗?

使用特权

评论回复
沙发
Clyde011| | 2025-5-4 07:20 | 只看该作者
有些驱动库要补NOP时钟,不然主机收不到。

使用特权

评论回复
板凳
公羊子丹| | 2025-5-4 07:20 | 只看该作者
CS有没有配成硬件控制?

使用特权

评论回复
地板
周半梅| | 2025-5-4 07:21 | 只看该作者
从机响应延迟太大也可能误触发错误。

使用特权

评论回复
5
帛灿灿| | 2025-5-4 07:22 | 只看该作者
SPI模式对上了吗?CPOL/CPHA别写反了。

使用特权

评论回复
6
童雨竹|  楼主 | 2025-5-4 07:23 | 只看该作者
F103 SPI从机响应本身就慢,建议降速。

使用特权

评论回复
7
万图| | 2025-5-4 07:24 | 只看该作者
你主机是用什么芯片发的?

使用特权

评论回复
8
Wordsworth| | 2025-5-4 07:25 | 只看该作者
从机要先准备好数据再等CS触发。

使用特权

评论回复
9
Bblythe| | 2025-5-4 07:26 | 只看该作者
DMA模式更好接主机数据试试?

使用特权

评论回复
10
Pulitzer| | 2025-5-4 07:26 | 只看该作者
STM的SPI从机确实不太强悍,哈哈。

使用特权

评论回复
11
Uriah| | 2025-5-4 07:27 | 只看该作者
我用中断方式还好,但必须短帧。

使用特权

评论回复
12
一秒落纱| | 2025-5-14 15:05 | 只看该作者
时钟相位/极性(CPOL/CPHA)不匹配,STM32F1SPI从机需与主机严格匹配时钟极性(CPOL)和相位(CPHA)。若主机配置为CPOL=0, CPHA=0(时钟空闲低电平,数据采样于第一个边沿),而从机配置为CPOL=1, CPHA=1,会导致数据采样时序错位。

使用特权

评论回复
13
夜阑风雨| | 2025-5-14 15:09 | 只看该作者
在主循环中持续检查SPI_I2S_GetFlagStatus(SPIx, SPI_I2S_FLAG_RXNE)并读取数据

使用特权

评论回复
14
远山寻你| | 2025-5-14 15:50 | 只看该作者
从机未正确检测NSS信号,硬件NSS引脚未连接:若主机通过硬件NSS(如PA4)控制从机,但未正确连接引脚,从机可能无法识别通信开始

使用特权

评论回复
15
别乱了阵脚| | 2025-5-14 16:00 | 只看该作者
软件NSS管理冲突,若从机配置为SPI_NSS_Soft(软件管理NSS),但主机通过硬件NSS控制,可能导致时序混乱

使用特权

评论回复
16
光辉梦境| | 2025-5-14 16:50 | 只看该作者
确保主机和从机的NSS引脚正确连接(如主机NSS→从机NSS)。统一NSS模式:主机和从机均使用硬件NSS或均使用软件NSS

使用特权

评论回复
17
三生万物| | 2025-5-14 17:00 | 只看该作者
通过SPI_I2S_ITConfig(SPIx, SPI_I2S_IT_RXNE, ENABLE)监听NSS上升沿/下降沿,触发SPI使能。

使用特权

评论回复
18
江河千里| | 2025-5-14 20:55 | 只看该作者
从机时钟分频器未配置:在从机模式下,SPI_BaudRatePrescaler无效(由主机时钟决定),但若主机时钟过快(如72MHz主频下SPI时钟未分频),可能导致从机采样窗口不足

使用特权

评论回复
19
淡漠安然| | 2025-5-14 22:00 | 只看该作者
中断处理延迟,若从机通过中断接收数据,但中断服务函数(ISR)执行时间过长,可能丢失数据。

使用特权

评论回复
20
冰春彩落下| | 2025-5-14 23:31 | 只看该作者
硬件线长差异,主机与从机之间的SPI时钟线(SCK)过长或负载电容过大,导致信号畸变

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

88

主题

4924

帖子

2

粉丝