stm32寄存器库和固件库

llguanli llguanli     2022-08-30     533

关键词:

寄存器和固件库开发的差别和联系

固件库就是函数的集合,固件库函数的作用是向下负责与寄存器直接打交道。向上提供用户函数调用的接口(API)。


在 51 的开发中我们经常的作法是直接操作寄存器,比方要控制某些 IO 口的状态,我们直
接操作寄存器:
P0=0x11;
而在 STM32 的开发中,我们相同能够操作寄存器:
GPIOx->BRR = 0x0011;

这样的方法当然能够,可是这样的方法的劣势是你须要去掌握每一个寄存器的使用方法。你才干正确使用
STM32,而对于 STM32 这样的级别的 MCU,数百个寄存器记起来又是谈何easy。于是 ST(意法
半导体)推出了官方固件库。固件库将这些寄存器底层操作都封装起来,提供一整套接口(API)
供开发人员调用,大多数场合下,你不须要去知道操作的是哪个寄存器,你仅仅须要知道调用哪些
函数就可以。

比方上面的控制 BRR 寄存器实现电平控制,官方库封装了一个函数:
void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
{
ALIENTEK 战舰STM32开发板
www.openedv.com
37
GPIOx->BRR = GPIO_Pin;
}


这个时候你不须要再直接去操作 BRR 寄存器了。你仅仅须要知道怎么使用 GPIO_ResetBits()这个
函数就能够了。在你对外设的工作原理有一定的了解之后。你再去看固件库函数,基本上函数
名字能告诉你这个函数的功能是什么,该怎么使用,这样是不是开发会方便非常多?
不论什么处理器。无论它有多么的高级,归根结底都是要对处理器的寄存器进行操作。可是固
件库不是万能的,您假设想要把 STM32 学透。光读 STM32 固件库是远远不够的。你还是要了
解一下 STM32 的原理,而这些原理了解了。你在进行固件库开发过程中才可能得心应手游刃
有余。

8.stm32固件库介绍

STM32固件库介绍前面为大家简单介绍了如何使用寄存器点亮开发板上LED,这种开发方式显然是不适合大众,对于STM32这样庞大的芯片,内部寄存器实在太多,如果操作的外设比较多,那么就需要花很多时间查询... 查看详情

stm32库函数是怎么封装底层寄存器的

...sp;      固件库首先将各个设备所有寄存器的配置字进行预先定义,然后封装在结构或枚举变量中,待用户调用对应的固件库函数时,会根据用户传入的参数从这些封装好的结构或枚举变量中取出对应的配置... 查看详情

如何快速读懂stm32代码

参考技术Astm32的代码分三种寄存器方式固件库HAL库这三种寄存器的话可以通过芯片手册去瞭解固件库跟HAL库都有各自的函数手册可以通过手册学习 查看详情

stm32二

第一部分固件库含义  库是在寄存器与用户驱动层之间的代码,也就是一些基础函数,他可以向下处理与寄存器直接相关的配置,向上为用户提供配置寄存器的结构,用库与不用库的区别非常明显:  用户显然更加快捷CMSIS... 查看详情

stm32f103操作ds1302时钟芯片串口显示(标准库和hal库)(代码片段)

目录DS1302的性能指标DS1302的寄存器及片内RAM标准库实现HAL库实现源码链接单片机型号:STM32F103C8T6          在日常生活中,很多情况下会需要使用时间,单片机中虽然也是有定时器但并不能较为准备的实现计时功... 查看详情

stm32中systick下的ctrl、load、calib、val寄存器的功能在哪里设置的

...功能在哪里设置的,在固件库中有CTRL:SysTick控制和状态寄存器LOAD:SysTick重装载值寄存器VAL:SysTick当前值寄存器CALIB:SysTick校准值寄存器但是我在看不论是固件库或者直接寄存器操作的程序中,都是直接调用这几个寄存器操作... 查看详情

使用固件库开发和使用hal库开发有什么不同

 ST先后提供了两套固件库:标准库和HAL库。STM32芯片面市之初只提供了丰富全面的标准库,大大便利了用户程序开发,为广大开发板所推崇,同时也为ST积累了大量标准库用户。有过STM32基础的同学想必对标准库非常熟悉。我... 查看详情

stm32hal库标准外设库ll库(stm32embeddedsoftware)

...32Snippets  它是代码示例的集合,直接基于STM32外设寄存器,可在文档和软件包中使用。由于处在最底层,因此需要开发者直接操作外设寄存器,对开发者要求比较高,通常针对于对汇编程序比较了解的资深嵌入式工程师!... 查看详情

stm32的hal库分析及使用

...会选用标准库和HAL库,而极少部分人会通过直接配置寄存器进行开发。网上关于标准库、HAL库的描述相信是数不胜数 查看详情

stm32固件库定义基础地址的时候为啥用了unsignedint?

...意定义前面还有一个*号,意味着这是一个对指定地址的寄存器的访问,如果没有这个定义,就是一个指针了。追问不是我加深颜色的那些,是第一行代码,这应该是定义一个地址吧,为什么不用unsignedint*追答指针的值就是地址 ... 查看详情

新建工程---寄存器版

目前学习STM32最流行的方法是使用固件库!!(暂时使用寄存器版本)systemInit函数的作用是把外部晶振经过锁相环使系统时钟变成180MHZ。(在固件库版本里面实现了的)。可以在main.c文件里面实现systemInit函数,不过没有函数体;... 查看详情

各位熟悉stm32的精英们,我想学习stm32单片机,如何快速入门,快速上手,求经验!!!

...有两种方式学习,一种是固件库,另外一种就是直接操作寄存器像51系列那样开发,两种方式都有不同的教程,stm32目前主要还是用来替换单片机的,通过固件库学习会比较快,但是你单片机经验很少,ARM公司推出这个系列,最... 查看详情

第9章初识stm32固件库

第9章    初识STM32固件库全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn野火视频教程优酷观看网址:http://i.youku.com/firege 本章参考资料:《STM32F4xx参考手册》、《STM32F4xx规格书》、《Cortex-M3权... 查看详情

stm32入门系列-cmsis标准

 使用寄存器点亮开发板上LED,这种开发方式显然是不适合大众,对于STM32这样庞大的芯片,内部寄存器实在太多,如果操作的外设比较多,那么就需要花很多时间查询底层寄存器内容,而且即使程序写好,如果要换其他端口或... 查看详情

stm32野火教程学习笔记(代码片段)

...编程方法有两种。一个是类似于51单片机的直接控制片内寄存器和i/o口的寄存器编程,一个是为了降低开发难度给开发者提供了巨大帮助的固件库编程。今天所学习的是更加底层的寄存器编程。尽管在开发的时候,我们用... 查看详情

在iar(ewarm)中移植stm32固件库

一、移植环境说明(1)、win10系统(2)、IAR(EWARM)7.7(3)、STM32标准固件库3.5.0http://www.st.com/content/st_com/en/products/embedded-software/mcus-embedded-software/stm32-embedded-software/stm32-standard-peripheral-libraries 查看详情

第9章初识stm32固件库—零死角玩转stm32-f429系列

第9章    初识STM32固件库全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn野火视频教程优酷观看网址:http://i.youku.com/firege 本章参考资料:《STM32F4xx参考手册》、《STM32F4xx规格书》、《Cortex-M3权... 查看详情

stm32固件库spi操作

参考技术Astm32固件库SPI操作来源:野火<零死角玩转STM32-F407>\'\'\'/*Privatetypedef-----------------------------------------------------------*///#definesFLASH_ID0xEF3015//W25X16//#definesFLASH_ID0xEF4015//W25Q16//#definesFLASH_ID0XEF4017//W25Q64//#defineSPI_FLASH_PageSize4096/*... 查看详情