标准库函数与基于HAL库函数
标准库函数与基于HAL库函数开始学习51的时候有的人会直接选择进行对单片机的寄存器进行操作,可以很好的理解单片机的工作原理,对于代码的编写也会后很好的理解,但是在stm32的时候操
开始学习51的时候有的人会直接选择进行对单片机的寄存器进行操作,可以很好的理解单片机的工作原理,对于代码的编写也会后很好的理解,但是在stm32的时候操作寄存器就不太行了,因为stm32的寄存器是51的数十倍,如此多的寄存器根本无法全部记忆,开发时需要经常的翻查芯片的数据手册,此时直接操作寄存器就变得非常的费力了。这是我们就有了其他的操作方式,来简化我们的工作。
一、标准库
STM32有非常多的寄存器,导致了开发困难,所以为此ST公司就为每款芯片都编写了一份库文件,也就是工程文件里stm32F1xx……之类的。在这些 .c .h文件中,包括一些常用量的宏定义,把一些外设也通过结构体变量封装起来,如GPIO口时钟等。所以我们只需要配置结构体变量成员就可以修改外设的配置寄存器,从而选择不同的功能。也是目前最多人使用的方式,也是学习STM32接触最多的一种开发方式。
二、HAL库
HAL库是ST公司目前主力推的开发方式,全称就是Hardware Abstraction Layer(抽象印象层)。库如其名,很抽象,一眼看上去不太容易知道他的作用是什么。它的出现比标准库要晚,但其实和标准库一样,都是为了节省程序开发的时期,而且HAL库尤其的有效,如果说标准库把实现功能需要配置的寄存器集成了,那么HAL库的一些函数甚至可以做到某些特定功能的集成。也就是说,同样的功能,标准库可能要用几句话,HAL库只需用一句话就够了。并且HAL库也很好的解决了程序移植的问题,不同型号的stm32芯片它的标准库是不一样的,但使用HAL库,只要使用的是相通的外设,程序基本可以完全复制粘贴,注意是相通外设,意思也就是不能无中生有。而且使用ST公司研发的STMcube软件,可以通过图形化的配置功能,直接生成整个使用HAL库的工程文件,可以说是方便至极。
三、库函数与HAL库对比
1.串口通信实验库函数部分代码
HAL函数代码
2.库函数与HAL库比较库函数配置好串口以后,当串口接收到数据再发送给上位机时需要循环发送,但是HAL库就直接调用HAL_UART_Transmit函数就能直接将串口的数据发给上位机。库函数不免比HAL更加的麻烦。库函数的串口通信函数只适用于STM32F1系列,对于其他系列的就不能通用了;但是对于HAL库来说,只要外设相同,基本上能够很容易的移植。可以说HAL库就是用来取代之前的标准外设库的。
总结
相比标准外设库,STM32Cube HAL库表现出更高的抽象整合水平,HAL API集中关注各外设的公共函数功能,这样便于定义一套通用的用户友好的API函数接口,从而可以轻松实现从一个STM32产品移植到另一个不同的STM32系列产品。对于我们这种水平的新手而言,HAL更加的友好,可以降低我们开发的门槛,但是如果想要更好的理解代码实现的原理以及对寄存器的调用原理,标准库更好的理解,可能相对较难,但是理解代码的实现也是我们必须的。
-
8项关于3D打印的标准正式发布2020-12-15
-
腾讯牵头零信任产业标准工作组正式发布“零信任系统技术规范”联盟标准2020-12-04
-
《中国移动物模型标准白皮书》重磅发布 为物联网设备互动及业务快速复制奠基2020-11-30
-
美国放弃自己的DSRC标准,转而采用C-V2X技术2020-11-27
-
10万预算买什么好?三大选购标准认准帝豪GL2020-11-26
-
标准之争尘埃落定:C-V2X绝对优势胜出2020-11-23
-
全新第三代奔腾B70定义新国民家轿标准,建家轿价值新坐标2020-11-16
-
长安CS75 PLUS在严苛的美国测试标准下表现如何?2020-11-11
-
人员定位将成煤矿行业强制标准,UWB定位产业能否抓住机会2020-11-09
-
聚焦行业变革,新华三集团参与智能运维国家标准制定2020-11-04
-
定义A级家轿最高标准,吉利星瑞做的究竟如何?2020-11-04
-
国家物联网基础标准工作组秘书长张晖:合作共赢,共建物联新时代!2020-11-03
-
物联网国际标准委员会专家、重庆邮电大学教授魏旻:IPv6未来物联网发展的“家”2020-11-02
-
重磅!机器人领域新增4项国家标准2020-10-31
-
含NR和标准治疗的营养方案能将新冠肺炎患者的康复时间缩短近30%2020-10-09