[STM32G0] spi2作为从机发送数据超过10bit酒出错

[复制链接]
1084|16
 楼主| yunfu1117 发表于 2025-3-30 21:58 | 显示全部楼层 |阅读模式
STM32G071RBT,spi1收发正常,spi2不正常。
进一步测试,spi2发送数据前10bit是正常的。
超过10bit后边的酒是错误的
梅花香自123 发表于 2025-3-31 22:55 | 显示全部楼层
DMA 缓冲区过小可能会导致在传输超过缓冲区大小后出现数据丢失或错误。

丢丢手绢666 发表于 2025-3-31 23:41 | 显示全部楼层
SPI1 和 SPI2 需要有相同或兼容的配置。
公羊子丹 发表于 2025-4-1 07:34 | 显示全部楼层
你 SPI2 作为从机时,NSS 处理方式是什么?试试用硬件 NSS 控制,而不是软件 NSS。
周半梅 发表于 2025-4-1 07:35 | 显示全部楼层
SPI2 的数据帧格式是不是 8bit 还是 16bit?检查 CR2.DS 的值,看看是不是 0b1111(16bit 模式)或 0b0111(8bit 模式)。
帛灿灿 发表于 2025-4-1 07:36 | 显示全部楼层
你是怎么发送数据的?如果用 HAL_SPI_Transmit(), 试试改用 HAL_SPI_Transmit_IT() 或 HAL_SPI_Transmit_DMA(),可能是阻塞模式导致的问题。
童雨竹 发表于 2025-4-1 07:37 | 显示全部楼层
SPI2 作为从机时,主机的 SCK 频率是多少?从机可能跟不上高速时钟,试试降低 SCK 频率看看是否改善。
万图 发表于 2025-4-1 07:38 | 显示全部楼层
你有启用 SPI_CR2_FRXTH 位吗?这个位在 8bit 数据模式下需要设置,保证 RXNE 及时置位。
Wordsworth 发表于 2025-4-1 07:39 | 显示全部楼层
你 SPI2 发送的数据是错位还是完全错误?如果是错位,可能是 NSS 控制或者 FIFO 没有正确刷新导致。
Bblythe 发表于 2025-4-1 07:39 | 显示全部楼层
试试在发送前手动清 SR 里的 OVR 和 MODF 标志位,避免干扰数据传输。
Pulitzer 发表于 2025-4-1 07:40 | 显示全部楼层
你 SPI2 的 CPOL / CPHA 设置跟主机匹配吗?不同模式下时钟相位不同,可能会导致数据解析错误。
Uriah 发表于 2025-4-1 07:41 | 显示全部楼层
试试用 HAL_SPI_TransmitReceive() 代替 HAL_SPI_Transmit(),有时候 SPI 从机需要同步接收和发送才能稳定工作。
Clyde011 发表于 2025-4-1 07:42 | 显示全部楼层
你 SPI2 的 TXE 标志是怎么处理的?检查 SR 里 TXE 是否正确置位,确保数据在发送缓冲区填充前不会丢失。
probedog 发表于 2025-4-1 12:41 | 显示全部楼层
如果SPI2的配置不正确,可能会导致数据传输错误。
classroom 发表于 2025-4-1 14:03 | 显示全部楼层
时钟不稳定或配置不当。
laocuo1142 发表于 2025-4-1 15:03 | 显示全部楼层
SPI2的数据格式设置不正确可能导致传输错误。
flycamelaaa 发表于 2025-4-1 15:59 | 显示全部楼层
可能是硬件连接问题。
powerantone 发表于 2025-4-1 17:20 | 显示全部楼层
SPI2的硬件连接可能存在松动或短路等问题。
stormwind123 发表于 2025-4-1 19:32 | 显示全部楼层
SPI2的初始化代码或数据传输代码可能存在错误。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

61

主题

63

帖子

0

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