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

经验分享 | STM32H743 BDMA+LPTIM+LPUART应用演示

[复制链接]
STMCU小助手 发布时间:2026-1-27 15:32

有人用到STM32H743片内的LPUART,并想用BDMA配合LPUART的数据传输。可是他发现LPUART的通信难以成功,希望有相关例程可以参考。

其实,基于DMA方式实现LPUART的通信并不难。就是有个地方要注意下,即此处的BDMA可以访问的内存仅限于SRAM4和备份SRAM。如果你把要传输的内存数据放在别的RAM区,BDMA鞭长莫及,是访问不到的。其它倒也没什么了。

image.png

下面要演示的功能是这样的,使用LPTIMER周期性的输出事件作为BDMA传输动作的同步信号。LPTIMER每产生一个输出上沿事件,BDMA就从内存取走1个数据送到LPUART的发送数据寄存器。最终将内存字符显示在PC的串口终端。

使用STM32CubeMx图形化工具进行配置,然后创建工程,添加用户代码,最后查看验证结果。

先对LPTIM2进行配置。时间参数不严格,能演示效果即可。开启其PWM输出功能。

image.png!

下面是LPUART的配置,没有太多要注意的。如果使用LSE作为其驱动时钟的话,波特率不要超过9600。不过,我这里使用的是其它时钟。

image.png

下面是关于LPUART发送功能的DMA配置。【关于接收这里就省掉了】

image.png

基于上面配置,BDMA根据LPUART的TXE事件从内存搬运数据到LPUART发送数据寄存器的行为还得与LPTIMER输出的上沿事件同步。

image.png

当然,我们也可以选择LPTIMER输出的下沿或双沿作为同步触发信号。

image.png

根据上面的配置,如果LPTIMER不启动的话,BDMA是没法实现LPUART数据的发送传输的。

添加必要的用户代码,这里基于ARM KEIL IDE创建工程、组织代码。

按照指定地址的方式定义待发送的内存数据。注意地址是在SRAM4区域内。

image.png

下面两行代码的功用一目了然,此处不多做解释。

image.png

在BDMA传输完成中断里,修改发送字符串里的某个特定字符,便于查看演示效果。同时重新再启动LPUART发送的DMA传输。

image.png

下面是最终演示结果。绿色波形是LPTIM的PWM输出,另一幅图是串口终端的字符显示效果。 image.png

image.png

上述内容主要涉及三个外设的协同配合,即LPTIM/LPUART和BDMA的配合应用,并给出了些应用提醒。今天的分享就到这里,供有需要的人参考。

文章出处:茶话MCU

收藏 评论0 发布时间:2026-1-27 15:32

举报

0个回答

所属标签

相似分享

官网相关资源

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