04-stm32的标准外设库

一、概述

1、STM32标准外设库(Standard Peripheral Library)是STMicroelectronics为STM32系列微控制器提供的一个软件库,它提供了一组API函数来简化对STM32微控制器硬件的访问。这个库包含了对各种外设(如GPIO、USART、SPI、I2C等)的操作函数,使得开发者可以不直接操作寄存器而通过调用这些封装好的函数来实现相应的功能。

2、外设概念:外设通常分为芯片外设与芯内外设,通常所说的外设指的是芯片外设。

外设:除CPU外的其它功能模块,如GPIO、DMA、SDIO、TIM、ADC、I2C等。

3、使用标准库来开发有什么用?

抽象化:隐藏了底层硬件细节,提供了更高层次的编程接口。

简化开发:减少了开发者需要了解的硬件知识,加速了软件开发过程。

可移植性:由于使用的是统一的API风格,因此代码易于在不同的STM32型号之间迁移。

文档支持:ST提供了详细的用户手册和技术参考手册,便于查找每个函数的具体用法。

4、怎么用?

对于每一个要使用的外设(外围设备:GPIO、定时器、串口、SPI),首先需要对其进行初始化。例如,如果想要配置一个GPIO引脚作为输出,则可能需要执行如下步骤:

配置PF9引脚作为输出的代码:

cs 复制代码
GPIO_InitTypeDef GPIO_InitStructure;

// 使能GPIO时钟
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);

// 设置GPIO结构体成员
GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_9;    //第9根引脚
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//输出模式
GPIO_InitStructure.GPIO_Speed= GPIO_High_Speed;//高速控制,功耗高一点
GPIO_InitStructure.GPIO_OType =GPIO_OType_PP;//使能推挽输出,能够增加输出电流能力和吸收电流的能力
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;//不使能上下拉电阻

// 初始化GPIO    
GPIO_Init(GPIOF,&GPIO_InitStructure);

调用API进行对PF9引脚设置位高电平或者低电平

cs 复制代码
GPIO_SetBits(GPIOF, GPIO_Pin_9);  //设置高电平
GPIO_ResetBits(GPIOF, GPIO_Pin_9);//设置低电平

二、拓展

1、ST公司有三种库版本:标准库、HAL库、LL库

1.标准库:成熟稳定的版本,现在很多企业一直沿用该版本。

2.HAL库:尽可能屏蔽硬件底层,目标实现跨平台,可以通过界面来进行编程,但产生效率不高,可阅读性较弱。

3.LL库:更加接近底层的库,常结合HAL库一起使用,弥补HAL库性能不足。

相关推荐
笨笨饿10 小时前
#58_万能函数的构造方法:ReLU函数
数据结构·人工智能·stm32·单片机·硬件工程·学习方法
三品吉他手会点灯14 小时前
STM32F103 学习笔记-21-串口通信(第4节)—串口发送和接收代码讲解(中)
笔记·stm32·单片机·嵌入式硬件·学习
项目題供诗16 小时前
STM32-LED闪烁&LED流水灯&蜂鸣器(四)
stm32·单片机·嵌入式硬件
北漂Zachary19 小时前
四大编程语言终极对决:汇编/C#/Go/Java谁更强
汇编·golang·c#
I_Am_Zou20 小时前
STM32实战系列|智能摄像头巡检系统完整演示:第一讲
stm32·单片机·嵌入式硬件
nnsix1 天前
C# ProcessStartInfo对象笔记
开发语言·笔记·c#
RFCEO1 天前
Rust编程基础课 第1课时:Rust简介与环境搭建 STM32 RUST嵌入式编程实战
stm32·嵌入式硬件·rust·probe-rs·rust工具链·rustup、cargo·stm32 rust适配
格林威1 天前
工业相机“心跳”监测脚本(C# 版) 支持海康 / Basler / 堡盟工业相机
开发语言·人工智能·数码相机·opencv·计算机视觉·c#·视觉检测
少年、潜行1 天前
【代码开源】基于STM32的智能路灯控制系统设计
stm32·嵌入式硬件·开源·智能路灯
刚子编程1 天前
C#事务处理最佳实践:别再让“主表存了、明细丢了”的破事发生
开发语言·c#·事务处理·trycatch