开发库介绍
一、开发库选择
1.1 概述
STM32开发相关的库有很多,它们都是为了方便开发者使用STM32微控制器而提供的软件工具。根据不同的功能和层次,可以将它们分为以下几类:
CMSIS库(Cortex Microcontroller Software Interface Standard)是ARM公司推出的一种标准化的微控制器软件接口,它定义了一些通用的数据类型、寄存器访问、中断处理、内核功能等,方便开发者使用Cortex-M内核的各种功能。CMSIS库还包括了一些中间件组件,如RTOS、DSP、Driver、Pack、SVD、DAP和NN等,提供了丰富的软件功能。CMSIS库不是HAL库,也不是标准库,它是一种与厂商(比如ST公司)无关的软件层,可以在不同的微控制器上使用。
HAL库(Hardware Abstraction Layer,硬件抽象层)是ST公司推出的一种硬件抽象层库,它提供了一套统一、简洁、易用的API函数接口,方便开发者使用STM32的各种外设功能。HAL库支持STM32全系列产品,具有可移植性、易用性和可靠性等优点。HAL库还提供了一些中间件组件,如RTOS,USB,TCP/IP和图形等,可以快速实现复杂的功能。
标准库(Standard Peripheral Libraries)是ST公司为STM32微控制器提供的一种固件函数包,它封装了STM32所有外设的寄存器操作和中断处理,提供了一套统一、简洁、易用的API函数接口,方便开发者使用STM32的各种外设功能。标准库支持STM32全系列产品,具有可移植性、易用性和可靠性等优点。不过,ST官方已经不再更新STM32标准固件库,而是力推新的固件库:HAL库。
LL库(Low-Layer,底层)是ST公司最近(也不是最近,六七年了)新增的一种底层库,它与HAL库捆绑发布,文档也是和HAL文档在一起的。 LL库更接近硬件层,对需要复杂上层协议栈的外设不适用,直接操作寄存器。LL库可以独立使用,也可以和HAL库结合使用。
其他第三方或开源库:除了ST公司提供的官方库外,还有许多第三方或开源的软件库可以用于STM32开发,如FreeRTOS、uCOS、FatFs、LwIP等。这些软件库通常提供了一些特定领域或功能的解决方案,如实时操作系统、文件系统、网络协议等。
相关文章:
开发库介绍
一、开发库选择 1.1 概述 STM32开发相关的库有很多,它们都是为了方便开发者使用STM32微控制器而提供的软件工具。根据不同的功能和层次,可以将它们分为以下几类: CMSIS库(Cortex Microcontroller Software Interface Standard&am…...
基于单片机的智能清洁小车设计—控制系统设计
收藏和点赞,您的关注是我创作的动力 文章目录 概要 一、研究的主要内容和目标二、总体方案设计2.1智能清洁小车的硬件系统组成2.2智能清洁小车的硬件结构图 三、 小车结构设计5.1基本布局和功能分析5.2小车二维及三维图小车三维图: 四、 原理图程序 五、…...
玩转视图变量,轻松实现动态可视化数据分析
前言 在当今数据驱动的世界中,数据分析已经成为了企业和组织中不可或缺的一部分。传统的静态数据分析方法往往无法满足快速变化的业务需求和实时决策的要求。为了更好地应对这些挑战,观测云的动态可视化数据分析应运而生。 在动态可视化数据分析中&…...
【51单片机】:智能施工电梯系统
项目效果: 基于51单片机的智能施工电梯系统 摘 要 智能施工电梯系统目前广泛应用于人们建筑工程中,为人们施工时上下搬运提供了极大的便利。智能施工电梯系统包括密码开启、超重提示,电梯运作及相关信息显示等等功能,施工电梯为我…...
前端线上部署,如何通知用户有新版本
前言 version-polling 是一个轻量级的 JavaScript 库,它可以实时检测 web 应用的 index.html 文件内容是否有变化。当服务端发布新版本后,前端会自动弹出更新提示,让用户刷新页面,以加载最新的资源和功能。这样可以提高用户体验和…...
Debezium日常分享系列之:Debezium2.4版本之用于 MongoDB的Debezium 连接器
Debezium日常分享系列之:Debezium2.4版本之用于 MongoDB的Debezium 连接器 一、综述二、改变流三、阅读偏好四、MongoDB 连接器的工作原理五、支持的 MongoDB 拓扑六、所需的用户权限七、逻辑连接器名称八、执行快照九、临时快照十、增量快照1.增量快照流程2.Debezi…...
编程应用场景:便利店商超进销存管理系统软件,试用版可以免费试用下载
编程应用场景:便利店商超进销存管理系统软件,试用版可以免费试用下载 软件特色: 1、功能实用,操作简单,不会电脑也会操作,软件免安装,已内置数据库。软件在关闭的时候,可以设置会员…...
【LInux】进程概念II -- 描述进程
Halo,这里是Ppeua。平时主要更新C语言,C,数据结构算法…感兴趣就关注我吧!你定不会失望。 本篇导航 0. 进程概念1. 描述进程2. 组织进程 0. 进程概念 在初学阶段,我们对进程这个词仅在书上看见过,大多不太理解这个究竟是什么意思…...
紫光集团、展讯通信、锐迪科(RDA)、紫光展锐以及翱捷科技(ASR)关系梳理
紫光集团、展讯通信、锐迪科(RDA)、紫光展锐以及翱捷科技(ASR)关系梳理 参考链接: 一文梳理国产芯片巨头:紫光集团https://zhuanlan.zhihu.com/p/578232102 紫光展锐发展史,曾经的热血海归们如今都去哪了? 然而早在2013年和2014年,展讯和锐迪科就分别被紫光收购。相隔一…...
7.多线程之单例模式
单例模式 文章目录 单例模式1. 什么是单例模式2. 饿汉模式3. 懒汉模式3.1 单线程版:3.2 多线程版 1. 什么是单例模式 单例模式是一种设计模式,常见的设计模式还有工厂模式、建造者模式等。 设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码…...
docker 常用指令
以下是一些常用的Docker指令: 构建镜像: docker build -t <image_name> <Dockerfile_directory>运行容器: docker run -d --name <container_name> <image_name>查看正在运行的容器: docker ps停止容…...
Numpy、Pandas、Matplotlib学习(更新ing...)
数据科学 一、Numpy二、Pandas三、Matplotlib参考链接 一、Numpy 在numpy中以np.nan表示缺失值,它是一个浮点数。 二、Pandas 1、如要选出col0在30到80之间的行中col3与col1之差为奇数的行,或者col2大于50中的行col3超过col1均值的行,可以…...
Linux-sdio接口
支持模式 4位模式: CMD:命令线,单向传输,由主机控制。 DAT0-DAT3:数据线,双向传输,由主机和外设共同控制。8位模式: CMD:命令线,单向传输,由主机…...
【MATLAB源码-第62期】基于蜣螂优化算法(DBO)的无人机三维地图路径规划,输出最短路径和适应度曲线。
操作环境: MATLAB 2022a 1、算法描述 蜣螂优化算法(Dung Beetle Optimization, DBO)是一种模拟蜣螂在寻找食物和进行导航的过程的优化算法。蜣螂是一种能够将粪球滚到合适地点的昆虫,它们利用天空中的光线和自身的感知能力来确…...
RealVNC Enterprise 7.7.0 Crack
RealVNC连接_旗舰产品 RealVNC Connect 是为需要强大安全性、弹性和安心的组织提供的远程访问解决方案。 设备访问 按需协助 随时随地安全访问和管理任何设备 通过安全的远程访问让您的组织保持联系,帮助您提高生产力并促进更广泛的协作。 随时随地安全远程访问和…...
Windows下Jenkins自动化部署SpringBoot应用
Windows下Jenkins自动化部署SpringBoot应用 1、下载安装包 下载地址: 一个是 msi 程序: https://mirrors.aliyun.com/jenkins/windows/ 一个是 war 程序: https://get.jenkins.io/war-stable/ https://mirrors.jenkins.io/war/ 这里我…...
Leetcode59螺旋矩阵2
代码: class Solution {public int[][] generateMatrix(int n) {if(n1){int[][] arr {{1}};return arr; }int[][] arr new int[n][n];int cnt1;int left 0,right n-1,top0,downn-1;while(left<right){for(int ileft;i<right;i){arr[top][i] cnt;}for(in…...
抖音很火的情侣飞行棋/真心话大冒险/情侣扫雷html网站源码带在线支付、代理分销等!
-------- 演示地址 -------- 演示地址:http://game.71.vy386.cn 演示后台:http://game.71.vy386.cn/admin 后台账号:admin888 后台密码:admin888 -------- 程序特色 -------- 1、完整的分销制度,可自定义多种不同…...
Word批量删除文档属性和个人信息方法图解
投标文件中设计敏感信息,在投标前必须删除,Word批量删除文档属性和个人信息方法图解: 右键word文件属性--详细信息,可以查看如下信息; 删除上述信息的办法: 1.打开word文件---文件 2.检查文档、检查文档 检…...
Kubernetes(K8s)从入门到精通系列之十八:使用 Operator Lifecycle Manager(OLM) 安装operator
Kubernetes从入门到精通系列之十八:使用 Operator Lifecycle Manager OLM 安装operator 一、先决条件二、安装operator三、示例:安装最新版本的 Operator四、示例:安装特定版本的 Operator 从运算符目录中安装运算符 通过 CatalogSource 将 …...
SpringBoot-17-MyBatis动态SQL标签之常用标签
文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...
【磁盘】每天掌握一个Linux命令 - iostat
目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...
[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...
JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问(基础概念问题) 1. 请解释Spring框架的核心容器是什么?它在Spring中起到什么作用? Spring框架的核心容器是IoC容器&#…...
Web中间件--tomcat学习
Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机,它可以执行Java字节码。Java虚拟机是Java平台的一部分,Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...
【网络安全】开源系统getshell漏洞挖掘
审计过程: 在入口文件admin/index.php中: 用户可以通过m,c,a等参数控制加载的文件和方法,在app/system/entrance.php中存在重点代码: 当M_TYPE system并且M_MODULE include时,会设置常量PATH_OWN_FILE为PATH_APP.M_T…...
MySQL 主从同步异常处理
阅读原文:https://www.xiaozaoshu.top/articles/mysql-m-s-update-pk MySQL 做双主,遇到的这个错误: Could not execute Update_rows event on table ... Error_code: 1032是 MySQL 主从复制时的经典错误之一,通常表示ÿ…...
