[STM32F3] SPI读外设寄存器时数据总是错一位

[复制链接]
107|10
Pulitzer 发表于 2025-10-5 07:17 | 显示全部楼层 |阅读模式
SPI主机读取一个外设的寄存器,每次读回来的数据都偏一个bit位,像是时钟相位或极性不对,但我切换了CPOL/CPHA都不太对。逻辑分析仪波形也没看出问题。
Clyde011 发表于 2025-10-5 07:20 | 显示全部楼层
要不你用手动bit-bang试几次,确认真实数据节奏。
公羊子丹 发表于 2025-10-5 07:21 | 显示全部楼层
有可能是外设那边要求dummy bit,你少发了一拍。
周半梅 发表于 2025-10-5 07:22 | 显示全部楼层
我遇到过一次,SPI模式对了但数据长度设置错了。
帛灿灿 发表于 2025-10-5 07:23 | 显示全部楼层
建议你试着切换MSB/LSB顺序,看能不能对齐。
童雨竹 发表于 2025-10-5 07:24 | 显示全部楼层
有时线太长也会造成采样延迟一个bit。
万图 发表于 2025-10-5 07:25 | 显示全部楼层
是不是片选信号提前拉低或延后释放?
Wordsworth 发表于 2025-10-5 07:26 | 显示全部楼层
你可以试着在片选拉高前加一点延时。
Bblythe 发表于 2025-10-5 07:27 | 显示全部楼层
我怀疑是SPI速度太高,外设还没准备好。
 楼主| Pulitzer 发表于 2025-10-5 07:28 | 显示全部楼层
我之前调试AD7793也遇到这种错位问题。
Uriah 发表于 2025-10-5 07:28 | 显示全部楼层
逻辑分析仪有时候也会显示错位,取样率太低。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

160

主题

6066

帖子

0

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