您好,欢迎进入u8国际电动伸缩门有限公司官网!
u8国际|u8国际官方网站|u8国际网址最新

联系我们

邮箱:youweb@admin.com
电话:@HASHKFK
地址:广东省广州市番禺经济开发区 在线咨询

u8国际常见问题

STM32的HAL库知识总结u8国际-u8国际官方网站-网址最新

发布日期:2025-01-03 14:20 浏览次数:

  u8国际,u8国际官方网站,u8国际网站最新,u8国际网站,u8国际网址,u8国际链接

STM32的HAL库知识总结u8国际-u8国际官方网站-u8国际网址最新

  通常新手在入门STM32的时候,首先都要先选择一种要用的开发方式,不同的开发方式会导致你编程的架构是完全不一样的。一般大多数都会选用标准库和HAL库,而极少部分人会通过直接配置寄存器进行开发。网上关于标准库、HAL库的描述相信是数不胜数。可是一个对于很多刚入门的朋友还是没法很直观的去真正了解这些不同开发方式彼此之间的区别,所以笔者想以一种非常直白的方式,用自己的理解去将这些东西表述出来,如果有描述的不对的地方或者是不同意见的也可以大家提出。

  不少先学了51的朋友可能会知道,会有一小部分人或是教程是通过汇编语言直接操作寄存器实现功能的,这种方法到了STM32就变得不太容易行得通了,因为STM32的寄存器数量是51单片机的十数倍,如此多的寄存器根本无法全部记忆,开发时需要经常的翻查芯片的数据手册,此时直接操作寄存器就变得非常的费力了。 但还是会有很小一部分人,喜欢去直接操作寄存器,因为这样更接近原理,知其然也知其所以然。 相关文章:C语言操作寄存器的常见手法。

  上面也提到了,STM32有非常多的寄存器,而导致了开发困难,所以为此ST公司就为每款芯片都编写了一份库文件,也就是工程文件里stm32F1xx… 之类的。 在这些 .c .h文件中,包括一些常用量的宏定义,把一些外设也通过结构体变量封装起来,如GPIO口时钟等。 所以我们只需要配置结构体变量成员就可以修改外设的配置寄存器,从而选择不同的功能。 也是目前最多人使用的方式,也是学习STM32接触最多的一种开发方式,我也就不多阐述了。

  HAL库是ST公司目前主力推的开发方式,全称就是Hardware Abstraction Layer(抽象印象层)。 库如其名,很抽象,一眼看上去不太容易知道他的作用是什么。 它的出现比标准库要晚,但其实和标准库一样,都是为了节省程序开发的时期,而且HAL库尤其的有效,如果说标准库把实现功能需要配置的寄存器集成了,那么HAL库的一些函数甚至可以做到某些特定功能的集成。 也就是说,同样的功能,标准库可能要用几句话,HAL库只需用一句话就够了。 相关文章:STM32CubeMX教程-GPIO。 并且HAL库也很好的解决了程序移植的问题,不同型号的stm32芯片它的标准库是不一样的,例如在F4上开发的程序移植到F3上是不能通用的,而使用HAL库,只要使用的是相通的外设,程序基本可以完全复制粘贴,注意是相通外设,意思也就是不能无中生有,例如F7比F3要多几个定时器,不能明明没有这个定时器却非要配置,但其实这种情况不多, 绝大多数都可以直接复制粘贴。 是而且使用ST公司研发的STMcube软件,可以通过图形化的配置功能,直接生成整个使用HAL库的工程文件,可以说是方便至极,但是方便的同时也造成了它执行效率的低下,在各种论坛帖子真的是被吐槽的数不胜数。

  在ST的官方声明中,HAL库是大势所趋。 ST最新开发的芯片中,只有HAL库没有标准库。 标准库和HAL库虽然都是对外设进行操作的函数,但由于标准库官方已经停止更新,而且标准库在STM32创建工程和初始化时,不能由CubMX软件代码生成使用,也就是说CubMX软件在生产代码时,工程项目和初始化代码就自动生成,这个工程项目和初始化代码里面使用的库都是基于HAL库的。 STM32CubeMX是一个图形化的工具,也是配置和初始化C代码生成器 ,与STM32CubeMX配合使用的是HAL库(硬件抽象层软件库)。

  · 第二种解释:整个Windows编程的基础。 一个句柄是指使用的 一个唯一的整数值,即一个4字节(64位程序中为8字节)长的数值,来标识应用程序中的不同对象和同类中的不同的实例 ,诸如,一个窗口,按钮,图标,滚动条,输出设备,控件或者文件等。 应用程序能够通过句柄访问相应的对象的信息,但是句柄不是指针,程序不能利用句柄来直接阅读文件中的信息。 如果句柄不在I/O文件中,它是毫无用处的。 句柄是Windows用来标志应用程序中建立的或是使用的唯一整数,Windows大量使用了句柄来标识对象。

  MSP是指和MCU相关的初始化 ,引用一下正点原子的解释,个人觉得说的很明白:我们要初始化一个串口,首先要设置和 MCU 无关的东西,例如波特率,奇偶校验,停止位等,这些参数设置和 MCU 没有任何关系,可以使用 STM32F1,也可以是 STM32F2/F3/F4/F7上的串口。 而一个串口设备它需要一个 MCU 来承载,例如用 STM32F4 来做承载,PA9 做为发送,PA10 做为接收,MSP 就是要初始化 STM32F4 的 PA9,PA10,配置这两个引脚。 所以 HAL驱动方式的初始化流程就是:

联系方式

全国服务热线

@HASHKFK

手 机:@HASHKFK

地 址:广东省广州市番禺经济开发区

扫一扫,加微信

Copyright © 2002-2024 u8国际电动伸缩门有限公司 版权所有 非商用版本 备案号: