当前位置: 首页> 教育> 就业 > 推广计划方案模板_硬件开发软件有哪些_中国国家人事人才培训网_图片识别 在线识图

推广计划方案模板_硬件开发软件有哪些_中国国家人事人才培训网_图片识别 在线识图

时间:2025/7/9 13:39:56来源:https://blog.csdn.net/u014319604/article/details/147221507 浏览次数:1次
推广计划方案模板_硬件开发软件有哪些_中国国家人事人才培训网_图片识别 在线识图

1. 背景

某客户在使用 STM32U595QII6Q 开发产品时发现,使用该芯片的 SPI3 与对方通信时,如果发送的数据超过 1024 字节时,SPI3 作为主设备,使用 HAL 库的 SPI 相关发送函数,发送完成回调函数不会执行。

2. 问题复盘

鉴于没有 STM32U595QII6Q 对应的开发板,于是使用 NUCLEO-U575ZI-Q 复现问题。

2.1. 复盘

2.1.1. 运行例程

客户在项目里还涉及了 LPDMA 外设,于是选择了 en.stm32cubeu5-v1-6-
0\STM32Cube_FW_U5_V1.6.0\Projects\NUCLEO-U575ZI-Q\Examples\SPI\SPI_FullDuplex_ComDMA_LowPower_Master
运行发现结果正常。

2.1.2. 修改数据长度

首先将长度修改为(512<<0),数据内容填充为 0xa5,测试发现一切正常。然后将长度修改为(512<<1),发现的确 HAL_SPI_TxRxCpltCallback 未被执行。注意,此时 SPI3 工作duplex mode。

2.1.3. 最小化系统

利用 stm32cubeMX 配置了一个工程,SPI3 工作在 half-duplex mode。测试结果与上面的类似。

3. 分析

检查正常时(数据长度为 512),SPI3 状态寄存器的值,如图所示:

此时 CR2 寄存器值 TSIZE 为 0x200
在这里插入图片描述
检查正常时(数据长度为 1024 时),SPI3 状态寄存器的值,如图所示:

此时 CR2 寄存器值 TSIZE 为 0x0000
在这里插入图片描述
检查 RM0456 rev 5.0 SPI 章节,
在这里插入图片描述

单步调试发现,在函数 HAL_SPI_TransmitReceive_DMA,执行以下代码片段时,

if ((hspi->hdmarx->Mode == DMA_LINKEDLIST_CIRCULAR) && 
(hspi->hdmatx->Mode == DMA_LINKEDLIST_CIRCULAR)){MODIFY_REG(hspi->Instance->CR2, SPI_CR2_TSIZE, 0UL);}
else{MODIFY_REG(hspi->Instance->CR2, SPI_CR2_TSIZE, Size);}

修改 CR2 寄存器失败,因此 CR2 的值一直未 0。

因为依据手册,对于 SPI3,最大支持的长度为 1023 字节,而 1024 字节超过了最大长度,因此设置失败。
在这里插入图片描述

4. 建议

对于 stm32u5 系列 mcu,如果 SPI3 都有此长度限制,建议将驱动代码修改如下:

	 if ((hspi->hdmarx->Mode == DMA_LINKEDLIST_CIRCULAR) && (hspi->hdmatx->Mode == DMA_LINKEDLIST_CIRCULAR)){MODIFY_REG(hspi->Instance->CR2, SPI_CR2_TSIZE, 0UL);}else{If( SPI3 == hspi->Instance && Size >= 1023){status = HAL_ERROR;} else{MODIFY_REG(hspi->Instance->CR2, SPI_CR2_TSIZE, Size);} }

5. 小结

客户在使用 stm32u575/u585/u595 系列 mcu SPI3 时,请注意传输数据长度,不能超过1024。
在这里插入图片描述


本文档参考ST官方的《LAT1470 SPI传输长度超过1024时出现异常的问题分析》文档。

关键字:推广计划方案模板_硬件开发软件有哪些_中国国家人事人才培训网_图片识别 在线识图

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: