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

STM32L051C8T6芯片LPUART+DMA接收问题

[复制链接]
花生炖乔治 提问时间:2022-3-30 09:53 / 已解决

16486050401.jpg16486050081.jpg16486050711.jpg16486049891.png16486050831.jpg

STM32L051C8T6芯片低功耗串口LPUART+DMA。

我用STM32CUBEMX 生成了程序LPUART以及UART2串口+DMA的程序。

重新写了RxCpltCall函数里面有回显功能,其中UART2的接收是能够回显的。但是LPUART就无法做到回显。两者之间除了中断优先级之外其他基本都一样。我也查阅了文档,看是否是STM32CUBEMX生成程序配置错误的原因,结果也不是。

是LPUART不支持DMA接收么?

希望大家能看看,是什么问题。在此谢谢了。

1648605083(1).jpg
收藏 评论6 发布时间:2022-3-30 09:53

举报

6个回答
花生炖乔治 最优答案 回答时间:2022-3-30 15:16:48

LPUART 和 UART 之间有区别。

LPUART对晶振以及波特率有要求。当用外部低晶振时 不能超时9600波特率,在用外部高晶振时,不能低于38400。而我设置了LPUART 内部晶振16M 但是波特率为9600。导致无法接收数据。之后我修改用外部低晶振,能够正常接收数据。

虽然没人回答,但是如果有人出现这个问题,以上方法可以尝试。

具体参考http://www.elecfans.com/d/648291.html。

xmshao 回答时间:2022-3-31 12:10:13
我刚才找到L053开发板做了验证,LPUART的DMA收发是没有问题的。配置方面也沒有啥特別的。你再看看代码或硬件方面。
xmshao 回答时间:2022-3-31 11:30:17

从手册上看,L053的LPUART是支持DMA收发的。你确认下LPUART是否正常工作了,比方中断或查询方式是否可以工作。回头我这边也找个L053的板验证下,然后告知结果你。

xmshao 回答时间:2022-3-30 22:30:13
从手册上看,L053的LPUART是支持DMA收发的。你确认下LPUART是否正常工作了,比方中断或查询方式是否可以工作。回头我这边也找个L053的板验证下,然后告知结果你。
花生炖乔治 回答时间:2022-4-2 13:59:21

xmshao 发表于 2022-3-31 12:10
我刚才找到L053开发板做了验证,LPUART的DMA收发是没有问题的。配置方面也沒有啥特別的。你再看看代码或硬 ...

感谢回复。我已经测试出来了。是晶振配置问题。我之前有回复一个参考文章。当LPUART在CUBEM配置高晶振4M及以上晶振时,波特率设置应在38400及以上。而我配置了9600,导致了接收不了。之后我在CUBEMX里面配置了低晶振32.768K,波特率9600就能成功接收。

鹿森 回答时间:2022-4-10 10:07:18

学习了!

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