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

STM32 HAL库开发转固件库

[复制链接]
STMCU小助手 发布时间:2023-2-1 15:34
前言
) ?7 ]* G. z" I& K9 C; ASTM32 最早提供固件库开发,在当时也是一个很大的创新。导致大量攻城狮熟悉了固件库开发,后面STM32又慢慢推出HAL开发模式,这种开发模式是开发过程更高效便捷,但是最大的缺点就是效率。其实熟悉STM32的开发人员,可以将HAL库转为固件库开发方式,这里以串口为例提供一点自己的看法。
9 J. ~5 @! O( ^8 t0 z
# u. a* X4 `8 _& b) n历经STM32从寄存器到固件库到hal库开发过程,这个过程还是有很多感触的。现在ST也是主推hal库开发,hal库开发以串口为例,ST实现了很多串口的处理过程,使开发更便捷,但是效率太低了,占用了比较多的ROM和ram资源,这针对成本敏感的应用场景是不能接受的。
- Q* S! Y: R" d5 ]) U

0 c8 B  M8 ^7 I" S但是攻城狮就要放弃hal库开发吗,个人看法不是的。Hal库开发是主流吧,随着芯片工艺越来越高,芯片集成度越来越高,嵌入的IP也是越来越复杂。随着芯片的主频越高,算力越强hal库开发的优点就越突出。
( ^8 S8 m. c4 w, p$ c+ C- j# H+ h
: p- R1 v9 f: t# g2 ]: K/ i其实还有一种方式,就是优化hal库,你不是嫌弃ST的处理过程复杂吗,你可以同样使用hal库,修改成自己的处理方式。9 [# Q3 K% Z  n, B, ^0 s+ h
7 _3 u  q4 u' b. d! l* A

  |3 l" o) U3 e# R案例1
9 l+ f, L: U6 A% @# c案例1:串口中断方式接收数据1 y2 I: x# r  c; R& V
这里可以选择打开串口接收中断,在串口接收中断中,将数据收集到缓存中。配置CUBE如下图
7 u7 e, u$ W+ U% W8 y
3 M- [" ^- l* ~% J$ [- _2 s, ~3 M' e
5ba571518c094827abdc58fb71297ff3.png . ^5 C* R, Y6 P+ n
e85a1dc74b414fa1b8ef13cc3a8dd988.png
- s3 V7 ]+ O+ v: ^" ], k& r7 }7 U7 f3 [, e3 d* N' W5 @
打开串口中断2 o2 e, B* P- ~

. _/ r" x* F) f  R; i  __HAL_UART_ENABLE_IT(&huart1, UART_IT_RXNE);
, [* I% g9 Z- j0 H( W4 u: a2 d- q6 n; n- s7 G, ?/ D& R. M
针对串口中断的处理如下图所示,
/ k% v2 w8 X# ^& ?2 Q, a8 }- m" H, v" I
其中1,清除串口接收中断,处理接收的串口数据* Z' s) b0 D5 M2 w% j

: a6 _% M) {5 h2 Q' c% W其中2,清除溢出中断6 O' i4 s- ^+ m9 R% @# O* z
1 T' p+ R; d6 O( B9 K
其中3,屏蔽掉hal库函数的串口处理过程
8 q! H0 G0 X; `/ g9 Q$ z. d% O* X4 n) ^
3e6c5ceca97f408084eaeeaa4cd488ef.png
* V3 S( _) d' I: B0 |8 T( |# Z4 J) S2 I2 l+ }$ C
这样几步处理下来,基本回到了固件库的编程模式,这是习惯了固件库开发的攻城狮喜欢的方式。
& o( d2 e5 H% f" Z2 ]4 e+ E
8 \6 w6 @  s# q2 j% g7 T后面希望可以做出更多,这样更改的案例。
+ i: {' d/ Z, }& H; W————————————————
; o/ F7 P3 M8 ?! `$ @版权声明:大牛攻城狮( I$ A5 T+ j$ C3 s" ]) I* k
. b. k' f% \* @

( }+ L: J$ J2 {% u9 v! {
赞 收藏 评论0 发布时间:2023-2-1 15:34

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版