你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32H563的SPI DMA通讯问题

[复制链接]
仲裁者 提问时间:2024-7-31 09:33 / 已解决
大家早上好,最近用STM32H563的SPI DMA时碰到问题,麻烦大家给看看,谢谢

我的STM32CubeMx配置如图1、2所示
5.png 图1
6.png 图2
我调用的发送接收库函数是HAL_SPI_TransmitReceive_DMA(),该函数内部执行到图3位置时,调到了return HAL_ERROR语句
1.JPG 图3
通过仿真器排查到是因为hspi->hdmarx->Init.DestDataWidth的值为0,于是我返回去排查DMA的配置代码,如图4所示
3.png 图4
通过仿真器发现,在执行__HAL_LINKDMA()时,结构体handle_GPDMA1_Channel2的Init.DestDataWidth本身就已经是0,如图5所示
4.JPG 图5

于是我又查看了前面几条配置函数,但没有发现handle_GPDMA1_Channel2的Init.DestDataWidth赋值位置
麻烦大家看看到底是哪里的问题,是Mx里的配置选择不对吗?
2.JPG
收藏 评论2 发布时间:2024-7-31 09:33

举报

2个回答
xmshao 最优答案 回答时间:2024-8-15 09:21:39

该芯片及内部DMA功能较新,相比之前在配置上不太一样。DMA功能也增强了很多。

我找到了H563NUCLEO开发板,基于SPI1的DMA收发做了测试,也经历一番折腾。

你这个问题我测试中也遇到了,应该说这个地方有些bug.幸好不是关键功能性代码,

暂时屏蔽也无所谓。相信未来版本在这个地方会改善。

基于cubeMx配置和HAL库,相应功能都是可以实现的。

这里有相应记录,可以参考之。

STM32H563 SPI DMA应用演示 (qq.com)

记得将堆栈调大点。

仲裁者 回答时间:2024-8-16 18:39:04

xmshao 发表于 2024-8-15 09:21
该芯片及内部DMA功能较新,相比之前在配置上不太一样。DMA功能也增强了很多。</p>
<p>我找到了H563NUCLEO开发 ...

[md]我把SPI的Data Size调成8bits,就可以用了,之前用16bit就是不行,感觉是CubeMx生成代码这里有问题,我也没有深究

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版