|
STM32L051C8T6芯片低功耗串口LPUART+DMA。 我用STM32CUBEMX 生成了程序LPUART以及UART2串口+DMA的程序。 重新写了RxCpltCall函数里面有回显功能,其中UART2的接收是能够回显的。但是LPUART就无法做到回显。两者之间除了中断优先级之外其他基本都一样。我也查阅了文档,看是否是STM32CUBEMX生成程序配置错误的原因,结果也不是。 是LPUART不支持DMA接收么? 希望大家能看看,是什么问题。在此谢谢了。 |
如需获得 STM32L051C8T6 等器件的更多信息,请点击链接或 点击此处 联系在线客服!
LPUART 和 UART 之间有区别。 LPUART对晶振以及波特率有要求。当用外部低晶振时 不能超时9600波特率,在用外部高晶振时,不能低于38400。而我设置了LPUART 内部晶振16M 但是波特率为9600。导致无法接收数据。之后我修改用外部低晶振,能够正常接收数据。 虽然没人回答,但是如果有人出现这个问题,以上方法可以尝试。 具体参考http://www.elecfans.com/d/648291.html。
我刚才找到L053开发板做了验证,LPUART的DMA收发是没有问题的。配置方面也沒有啥特別的。你再看看代码或硬件方面。
从手册上看,L053的LPUART是支持DMA收发的。你确认下LPUART是否正常工作了,比方中断或查询方式是否可以工作。回头我这边也找个L053的板验证下,然后告知结果你。
从手册上看,L053的LPUART是支持DMA收发的。你确认下LPUART是否正常工作了,比方中断或查询方式是否可以工作。回头我这边也找个L053的板验证下,然后告知结果你。
我刚才找到L053开发板做了验证,LPUART的DMA收发是没有问题的。配置方面也沒有啥特別的。你再看看代码或硬 ...
感谢回复。我已经测试出来了。是晶振配置问题。我之前有回复一个参考文章。当LPUART在CUBEM配置高晶振4M及以上晶振时,波特率设置应在38400及以上。而我配置了9600,导致了接收不了。之后我在CUBEMX里面配置了低晶振32.768K,波特率9600就能成功接收。
学习了!