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

经验分享 | STM32H563 SPI DMA应用演示

[复制链接]
STMCU小助手 发布时间:2025-10-24 14:07

有人使用STM32H563的SPI,并启用DMA的数据传输。他在调试过程中发现功能实现不了。说实在的,如果是初次使用该芯片,可能会有点不顺畅,主要体现在DMA的配置上。

当然,我也是第一次使用该芯片SPI的DMA传输功能。这里我使用STM32H563ZI的Nucleo板,针对SPI1的自发自收进行验证测试。我让SPI1工作在全双工模式,MISO和MOSI管脚直接短接。

image.png

开启SPI1数据收发的DMA功能,使用标准请求模式。使用GPDMA1,CHANNEL1实现SPI数据的发送,CHANNEL2实现SPI数据的接收,都工作在循环模式。

image.png

一、先验证“半字到半字”的传输模式。这里意思是指,SPI的数据宽度选择16bit,DMA发送通道每次从内存提取16位数据给SPI数据发送寄存器,DMA接收通道从SPI接收数据寄存器搬运数据到16位宽内存数组。

使用STM32CubeMx进行初始化配置。下面是SPI1的基本配置:

image.png

下面是SPI DMA发送通道的配置:

image.png

下面是SPI DMA接收通道的配置: image.png

主要代码如下,就一行API调用函数。周期性地做4个16位数据的循环收发。

image.png

测试结果如下:

image.png

把配置弄对,调用一行库函数就完成了。

二、现在验证“字到字”的传输模式。这里的意思是指,SPI的数据宽度选择32bit,DMA发送通道每次从内存提取32位数据给SPI发送寄存器,DMA接收通道从SPI接收寄存器搬运数据到32位宽内存数组。配置跟上面的差不多,主要是位宽差别。

下面是SPI的基本配置,SPI数据宽度配置在32位。

image.png

关于SPI RX/TX的DMA配置就不截图了,参照前面“半字到半字”传输的DMA配置,将所有涉及数据宽度的地方,改为字即可,其它一模一样。

我们来看验证代码,实现2个字的周期性循环收发效果。

image.png

三、现在验证“字节到字”的传输模式。这里的意思是指,SPI的数据宽度选择8bit,DMA发送通道每次从内存提取8位数据给SPI数据发送寄存器,DMA接收通道从SPI接收数据寄存器搬运数据到32位宽内存数组。

下面是SPI的基本配置:

image.png

下面是SPI DMA发送通道的配置:

image.png

下面是SPI DMA接收通道的配置【注意开启了数据打包配置】:

image.png

当然,这里的DMA接收可以开启Burst功能,即像下面图示配置,每次DMA取走4个字节到缓存,DMA可以相对轻松点。

image.png

其实,此时的Data Alighment不是必要的。当然使能也无所谓。

我们来看看验证代码及结果【源端8个字节变成目的端2个字】:

image.png

四、现在验证“字到字节”的传输模式。这里是指,SPI的数据宽度选择32bit,DMA发送通道每次从内存提取32位数据给SPI数据发送寄存器,DMA接收通道从SPI接收数据寄存器搬运32位数据,并拆包成4字节数据存储到内存数组。

下面是SPI的基本配置:

image.png

下面是SPI DMA发送通道的配置:

image.png

下面是SPI DMA接收通道的配置【注意开启了数据拆包配置】:

image.png

验证代码及输出结果【源端双字拆分为8个字节】:

image.png

五、在上面“半字到半字”的基础上,将接收端的半字做高低字节序的交换实验。

基本配置跟前面“半字到半字”实验一样,只是在SPI DMA接收配置里增加了目的端交换字节序的配置,见下图:

image.png

实验结果如下图所示,我们可以发现源端和目的端半字的高低字节顺序交换了。

image.png

六、我们也可以基于前面“字到字”的基础上,实现接收字的前后半字顺序的交换。基本配置跟前面“字到字”实验一样,也只是在SPI DMA接收配置里增加了目的端交换半字顺序的配置,见下图:

image.png

实验结果如下图所示,收到的字数据前后半字相比源数据调换了前后顺序。

image.png

其实,我们还可以将收到的字数据的字节顺序全部反转过来,见如下结果示意图【如何配置可以参照上面做法自行实现】:

image.png

STM32H5系列、STM32U5系列的DMA内容及功能非常丰富而强悍。上面的验证演示旨在给使用相关功能的同仁以参考和信心。很多时候一个实现了的结果验证对开发者非常有用,尤其对初次使用者。

应该说上面的演示内容其实也不少了,权当抛砖引玉,就此打住。

image.png
收藏 评论0 发布时间:2025-10-24 14:07

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版