随记:STM32L053LL库LPUART串口DMA接收数据

本文介绍了在STM32L053上使用LL库配置LPUART串口,通过DMA进行不固定长度的数据接收。详细讲述了配置过程,包括时钟设置、DMA通道选择、中断处理等,并提供了代码示例。
摘要由CSDN通过智能技术生成

老俗话说:不想写好代码的厨子都不是好业务,老俗是谁?老俗是我的又一个外号。本人技校毕业,水平有限,发现问题还请批评指正,还有就是轻点喷。

        言归正传,这次写个代码,没办法客户指定了STM32L053的MCU,之前确实没有用过,不过我一直坚信,所有的芯片制造出来,都是给大家使用的,而不是炫耀我们公司生产的多高科技,需要费死洋劲才能使用,这样的厂家肯定也快倒闭了。所以,放平心态,不急不躁,没有啥问题是解决不了的。

         说着说着又扯远了,这次的项目使用LPUART连接传感器进行通讯,好在传感器的通讯也是自己写的,通讯协议采用定长数据,10个byte,本想着直接用DMA的定长接收,无奈现场总线上有N多传感器,这要是串了数据,是一个错,个个错,就永远回不了头了。然后就想着用DMA做个不固定长度的接收。多年前用STM32F1系列做过,想着也不算太难,无奈找了找资料,STM32L053已经不支持标准库了。(此时内心略有波动,我不想告诉你们其实是万马奔腾),然后看了看资料,下载cubeMX,网上看了看,大部分是HAL库,然后用HAL库试了试串口中断,效果不是很理想。看了看代码,还是决定转战LL库。

        首先要感谢songrsp先生的《基于STM32CubeMX的LL库学习记录(五)USART_DMA_IDLE 串口接收空闲中断接收数据》

文章链接:https://www.pianshen.com/source/36308857364027/

        其实DMA接受不定长数据大部分思路就是使用DMA+串口空闲中断,因为我确实水平有限,也想不出什么更好的办法。至于DMA是个啥?手册里是这样说的:

        这就好比你买了个房子要装修,DMA就像是那个上料的师傅(不知道DMA有思维的话这么说他会不会痛扁我),你去买了水泥,沙子,油漆啥的,我只告诉师傅从哪里搬到哪里就可以了,至于师傅是扛着,推着,还是背着,就和你没太大关系了,你只是在需要的时候去看下东西的状况就可以了,看看到没到,到了多少。当然,如果你买了很多种类,有些是急需的,你就得告诉师傅先上哪部分料,那么怎么告诉我们的“师傅”呢?

写的有点啰嗦了,开整:

首先是打开cubeMX配置

个人习惯,先把调试勾选上,不然忘了这一步下次程序就下不进去了,需要重新搞BOOT脚。

 

 配置时钟,使用外部时钟

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值