STM32 HAL库开发转固件库开发杂谈

本文探讨了STM32从HAL库到固件库的转换,以提高效率和减少资源占用。作者通过串口中断接收数据的案例,展示了如何优化HAL库,使其接近固件库的编程模式,同时保留HAL库的便捷性。这种方法适用于对效率和资源敏感的嵌入式应用。
摘要由CSDN通过智能技术生成

前言

本文使用代码工程

STM32HAL库开发转固件库开发杂谈-嵌入式文档类资源-CSDN文库

STM32 最早提供固件库开发,在当时也是一个很大的创新。导致大量攻城狮熟悉了固件库开发,后面STM32又慢慢推出HAL开发模式,这种开发模式是开发过程更高效便捷,但是最大的缺点就是效率。其实熟悉STM32的开发人员,可以将HAL库转为固件库开发方式,这里以串口为例提供一点自己的看法。

历经STM32从寄存器到固件库到hal库开发过程,这个过程还是有很多感触的。现在ST也是主推hal库开发,hal库开发以串口为例,ST实现了很多串口的处理过程,使开发更便捷,但是效率太低了,占用了比较多的ROM和ram资源,这针对成本敏感的应用场景是不能接受的。

但是攻城狮就要放弃hal库开发吗,个人看法不是的。Hal库开发是主流吧,随着芯片工艺越来越高,芯片集成度越来越高,嵌入的IP也是越来越复杂。随着芯片的主频越高,算力越强hal库开发的优点就越突出。

其实还有一种方式,就是优化hal库,你不是嫌弃ST的处理过程复杂吗,你可以同样使用hal库,修改成自己的处理方式。

案例1

案例1:串口中断方式接收数据

这里可以选择打开串口接收中断,在串口接收中断中,将数据收集到缓存中。配置CUBE如下图

打开串口中断

  __HAL_UART_ENABLE_IT(&huart1, UART_IT_RXNE);

针对串口中断的处理如下图所示,

其中1,清除串口接收中断,处理接收的串口数据

其中2,清除溢出中断

其中3,屏蔽掉hal库函数的串口处理过程

这样几步处理下来,基本回到了固件库的编程模式,这是习惯了固件库开发的攻城狮喜欢的方式。 

后面希望可以做出更多,这样更改的案例。

 本文使用代码工程

STM32HAL库开发转固件库开发杂谈-嵌入式文档类资源-CSDN文库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大牛攻城狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值