STM32官方标准固件库开发与寄存器开发的区别

发布者:乡村乐园最新更新时间:2020-05-22 来源: eefocus关键字:STM32  官方标准固件库  寄存器开发 手机看文章 扫描二维码
随时随地手机看文章

一句话概括关系:固件库就是函数的集合,固件库函数的作用就是:向下负责与寄存器直接打交道,向上提供用户函数调用的接口(API)。对于STM32这种级别的MCU,数百个寄存器记起来何谈容易,于是推出了官方固件库,固件库将这些寄存器底层操作都封装起来,提供一套API供开发者使用。大多数情况下,你不需要知道操作的是哪个寄存器,你只需要知道调用哪些函数即可。


对比一下:入下面只需要知道GPIO_SetBit这个函数的使用即可。


寄存器操作:

库函数操作:

任何的处理器,不管多么高级,归根结底都是对寄存器的操作。固件库不是万能的,如果想要把STM32学透,知其然知其所以然,光读STM32固件库是远远不够的。但是如果知识为了完成一个简单项目,我们只把库函数读明白,知道怎么去使用库函数,也足以完成任务。

关键字:STM32  官方标准固件库  寄存器开发 引用地址:STM32官方标准固件库开发与寄存器开发的区别

上一篇:STM32学习笔记——独立看门狗IWDG介绍及配置
下一篇:基于STM32单片机低功耗模式机制详细解析

推荐阅读最新更新时间:2024-11-06 16:23

STM32】通用定时器的输入捕获(实例:输入捕获)
STM32F1xx官方资料: 《STM32中文参考手册V10》-第14章 通用定时器 通用定时器输入捕获概述 输入捕获的工作原理 在通用定时器框图中,主要涉及到最顶上的一部分(计数时钟的选择)、中间部分(时基单元)、左下部分(输入捕获)这三个部分。这里主要讲解一下左下部分(输入捕获),其他两个部分可以参考文章:【STM32】通用定时器的基本原理(实例:定时器中断)。 输入捕获模式可以用来测量脉冲宽度或者测量频率。STM32的定时器,除了TIM6、TIM7,其他的定时器都有输入捕获的功能。下面以一个简单的脉冲输入为例,简单地讲述一下输入捕获用于测量脉冲宽度的工作原理: 先设置输入捕获为上升沿检测,记录
[单片机]
【<font color='red'>STM32</font>】通用定时器的输入捕获(实例:输入捕获)
42.485通信实验
一。485接口原理 二。485电路芯片SP3485 一般2,3脚连在一起,当2,3脚为低电平时,使能RO端,当2,3脚为高电平时,使能DI端。 三。电路 采用UART2接口,PA2为USART2_TX,PA3为USART2_RX PA2接SP3485的4脚DI端 PA3接SP3485的1脚RO端 四。程序 串口2初始化 //初始化IO 串口2 //pclk1:PCLK1时钟频率(Mhz) //bound:波特率 void RS485_Init(u32 bound) { GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART
[单片机]
42.485通信实验
stm32固件库在stm3210e-eval开发板上的移植
  首先建立工程,我习惯性在工程文件夹下建立以下几个文件夹,分别放不同的文件,以区别不同文件的不同作用,方便寻找和移植。如下:      在PROJECT文件夹下建立工程项目,启动keil,开始建立工程。      注意建立在PROJECT文件夹下。      随便起个名字,我起的名字是MDK,建立后,会提示你选择器件型号         我的器件如上图,所以选择。确定后会询问你是否加入启动文件。我们用stm32的固件库,所以不用mdk的,选择否。      下面配置工程的选项option,右键点Target会看到Options。      以下是各个选项卡的配置内容。      
[单片机]
<font color='red'>stm32</font><font color='red'>固件库</font>在stm3210e-eval<font color='red'>开发</font>板上的移植
学习STM32单片机,要理解它的堆栈
学习STM32单片机的时候,总是能遇到 “堆栈” 这个概念。对于了解一点汇编编程的人,就可以知道,堆栈是内存中一段连续的存储区域,用来保存一些临时数据。堆栈操作由 PUSH、POP 两条指令来完成。而程序内存可以分为几个区:栈区(stack)、堆区(Heap)、全局区(static)、字符常量区、程序代码区。 栈,用于存放局部变量,局部数组等; 堆,用于malloc申请内存空间; 全局静态区,用于保存全局变量和静态变量; 字符常量区,用于保存字符串等; 代码区,用于保存程序的二进制代码。 程序编译之后,全局变量,静态变量已经分配好内存空间。在函数运行时,程序需要为局部变量分配栈空间,当中断来时,也需要将函数指针入栈,保护现
[单片机]
学习<font color='red'>STM32</font>单片机,要理解它的堆栈
STM32中将常量存储在FLASH中(CONST关键字)
今天在写程序时,想把一个字符串常量存储在STM32的FLASH中,看了一会儿别人的例子程序,知道是用const这个关键字,但第一次没有成功。 前提:我用的是STM32F103ZE单片机, FLASH的存储范围为:0x08000000~0x0807ffff, RAM的存储范围:0x20000000~0x200007ff 失败例子: #include..... 。。。。 int main(void) { u8 const c = somen ; while(1); } 通过调试,查看c 数组的存储位置为0x200*****的位置,常量仍旧处在RAM中。 成功的例子: #include..... u
[单片机]
STM32高级定时器-PWM简单使用
高级定时器与通用定时器比较类似,下面是一个TIM1 的PWM 程序,TIM1是STM32唯一的高级定时器。共有4个通道有死区有互补。 先是配置IO脚: GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure);
[单片机]
<font color='red'>STM32</font>高级定时器-PWM简单使用
STM32之GPIO_Mode
一、GPIO配置 (1)GPIO_Mode_AIN 模拟输入 (2)GPIO_Mode_IN_FLOATING 浮空输入 (3)GPIO_Mode_IPD 下拉输入 (4)GPIO_Mode_IPU 上拉输入 (5)GPIO_Mode_Out_OD 开漏输出 (6)GPIO_Mode_Out_PP 推挽输出 (7)GPIO_Mode_AF_OD 复用开漏输出 (8)GPIO_Mode_AF_PP 复用推挽输出 GPIO_Speed_10MHz 最高输出速率10MHz GPIO_Speed_2MHz 最高输出速率2MHz GPIO_Speed_50MHz 最高输出速率50MHz 1.1 I/O口的输出模式下,有3种输出速度可选(2M
[单片机]
stm32 can不稳定的解决方法
问题出现的背景 需要写一个新的电机的驱动,使用can通讯,驱动比较简单,很快就写好了。自己单独测试一个电机的时候没有问题,正反转测什么的都很正常。本以为事情会很顺利,但是在测两个电机的时候,却发现很严重的问题,经常左电机不装或者是右电机不转。 问题的解决步骤 发送: 3 个发送邮箱 发送报文的优先级特性可软件配置 记录发送 SOF 时刻的时间戳 接收: 3 级深度的2个接收 FIFO 14 个位宽可变的过滤器组 - 由整个 CAN 共享 标识符列表 FIFO 溢出处理方式可配置 记录接收 SOF 时刻的时间戳
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved