当前位置: 首页 > news >正文

开发库介绍

一、开发库选择
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指令&#xff1a; 构建镜像&#xff1a; docker build -t <image_name> <Dockerfile_directory>运行容器&#xff1a; docker run -d --name <container_name> <image_name>查看正在运行的容器&#xff1a; docker ps停止容…...

Numpy、Pandas、Matplotlib学习(更新ing...)

数据科学 一、Numpy二、Pandas三、Matplotlib参考链接 一、Numpy 在numpy中以np.nan表示缺失值&#xff0c;它是一个浮点数。 二、Pandas 1、如要选出col0在30到80之间的行中col3与col1之差为奇数的行&#xff0c;或者col2大于50中的行col3超过col1均值的行&#xff0c;可以…...

Linux-sdio接口

支持模式 4位模式&#xff1a; CMD&#xff1a;命令线&#xff0c;单向传输&#xff0c;由主机控制。 DAT0-DAT3&#xff1a;数据线&#xff0c;双向传输&#xff0c;由主机和外设共同控制。8位模式&#xff1a; CMD&#xff1a;命令线&#xff0c;单向传输&#xff0c;由主机…...

【MATLAB源码-第62期】基于蜣螂优化算法(DBO)的无人机三维地图路径规划,输出最短路径和适应度曲线。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 蜣螂优化算法&#xff08;Dung Beetle Optimization, DBO&#xff09;是一种模拟蜣螂在寻找食物和进行导航的过程的优化算法。蜣螂是一种能够将粪球滚到合适地点的昆虫&#xff0c;它们利用天空中的光线和自身的感知能力来确…...

RealVNC Enterprise 7.7.0 Crack

RealVNC连接_旗舰产品 RealVNC Connect 是为需要强大安全性、弹性和安心的组织提供的远程访问解决方案。 设备访问 按需协助 随时随地安全访问和管理任何设备 通过安全的远程访问让您的组织保持联系&#xff0c;帮助您提高生产力并促进更广泛的协作。 随时随地安全远程访问和…...

Windows下Jenkins自动化部署SpringBoot应用

Windows下Jenkins自动化部署SpringBoot应用 1、下载安装包 下载地址&#xff1a; 一个是 msi 程序&#xff1a; https://mirrors.aliyun.com/jenkins/windows/ 一个是 war 程序&#xff1a; https://get.jenkins.io/war-stable/ https://mirrors.jenkins.io/war/ 这里我…...

Leetcode59螺旋矩阵2

代码&#xff1a; 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网站源码带在线支付、代理分销等!

-------- 演示地址 -------- 演示地址&#xff1a;http://game.71.vy386.cn 演示后台&#xff1a;http://game.71.vy386.cn/admin 后台账号&#xff1a;admin888 后台密码&#xff1a;admin888 -------- 程序特色 -------- 1、完整的分销制度&#xff0c;可自定义多种不同…...

Word批量删除文档属性和个人信息方法图解

投标文件中设计敏感信息&#xff0c;在投标前必须删除&#xff0c;Word批量删除文档属性和个人信息方法图解&#xff1a; 右键word文件属性--详细信息&#xff0c;可以查看如下信息&#xff1b; 删除上述信息的办法&#xff1a; 1.打开word文件---文件 2.检查文档、检查文档 检…...

Kubernetes(K8s)从入门到精通系列之十八:使用 Operator Lifecycle Manager(OLM) 安装operator

Kubernetes从入门到精通系列之十八&#xff1a;使用 Operator Lifecycle Manager OLM 安装operator 一、先决条件二、安装operator三、示例&#xff1a;安装最新版本的 Operator四、示例&#xff1a;安装特定版本的 Operator 从运算符目录中安装运算符 通过 CatalogSource 将 …...

React 第五十五节 Router 中 useAsyncError的使用详解

前言 useAsyncError 是 React Router v6.4 引入的一个钩子&#xff0c;用于处理异步操作&#xff08;如数据加载&#xff09;中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误&#xff1a;捕获在 loader 或 action 中发生的异步错误替…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容&#xff0c;我认为是AI开发里面非常重要的内容。它在AI开发里无处不在&#xff0c;当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗"&#xff0c;或者让翻译模型 "将这段合同翻译成商务日语" 时&#xff0c;输入的这句话就是 Prompt。…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)

概述 在 Swift 开发语言中&#xff0c;各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过&#xff0c;在涉及到多个子类派生于基类进行多态模拟的场景下&#xff0c;…...

Axios请求超时重发机制

Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式&#xff1a; 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

css3笔记 (1) 自用

outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size&#xff1a;0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格&#xff…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

企业如何增强终端安全?

在数字化转型加速的今天&#xff0c;企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机&#xff0c;到工厂里的物联网设备、智能传感器&#xff0c;这些终端构成了企业与外部世界连接的 “神经末梢”。然而&#xff0c;随着远程办公的常态化和设备接入的爆炸式…...

【C++特殊工具与技术】优化内存分配(一):C++中的内存分配

目录 一、C 内存的基本概念​ 1.1 内存的物理与逻辑结构​ 1.2 C 程序的内存区域划分​ 二、栈内存分配​ 2.1 栈内存的特点​ 2.2 栈内存分配示例​ 三、堆内存分配​ 3.1 new和delete操作符​ 4.2 内存泄漏与悬空指针问题​ 4.3 new和delete的重载​ 四、智能指针…...

LRU 缓存机制详解与实现(Java版) + 力扣解决

&#x1f4cc; LRU 缓存机制详解与实现&#xff08;Java版&#xff09; 一、&#x1f4d6; 问题背景 在日常开发中&#xff0c;我们经常会使用 缓存&#xff08;Cache&#xff09; 来提升性能。但由于内存有限&#xff0c;缓存不可能无限增长&#xff0c;于是需要策略决定&am…...

小木的算法日记-多叉树的递归/层序遍历

&#x1f332; 从二叉树到森林&#xff1a;一文彻底搞懂多叉树遍历的艺术 &#x1f680; 引言 你好&#xff0c;未来的算法大神&#xff01; 在数据结构的世界里&#xff0c;“树”无疑是最核心、最迷人的概念之一。我们中的大多数人都是从 二叉树 开始入门的&#xff0c;它…...