【正点原子STM32连载】第六章 认识Geehy标准库 摘自【正点原子】APM32F407最小系统板使用指南

news2025/1/17 5:58:10

1)实验平台:正点原子stm32f103战舰开发板V4
2)平台购买地址:https://detail.tmall.com/item.htm?id=609294757420
3)全套实验源码+手册+视频下载地址: http://www.openedv.com/thread-340252-1-1.html#

第六章 认识Geehy标准库

编写程序控制MCU实际上就是操作MCU上的各个寄存器,但直接操作寄存器的开发方式不仅开发效率低且容易出错,为此Geehy官方为APM32提供了一个标准库,这使得用户在进行程序代码编写时,仅需调用标准库中提供的API函数即可完成对MCU上寄存器的访问操作,缩短开发时间、提高开发效率。
本章分为如下几个小节:
6.1 APM32F4xx_SDK介绍
6.2 Libraries文件夹介绍
6.3 Geehy标准库介绍

6.1 APM32F4xx_SDK介绍

SDK(Software Development Kit,软件工具开发包)是指软件工程师为特定软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具集合,对于用户而言,可以缩短开发周期、减少资源开销、加速产品研发等。
APM32F4xx_SDK是Geehy提供的主要用于APM32F4xx系列MCU的SDK,支持Keil和IAR等开发平台,包含了ADC、CAN和DMA等外设的驱动代码和应用例程,并且提供了一系列的库和一系列第三方中间件,其中就包含了标准库。
APM32F4xx_SDK由Geehy提供,下载链接为https://www.geehy.com/apm32?id=47,也可在A盘8,APM32参考资料中找到。APM32F4xx_SDK的文件结构,如下图所示:
在这里插入图片描述

图6.1.1 APM32F4xx_SDK文件结构
①:Boards
Geehy为自家设计的APM32F4系列Demo开发板提供的BSP(Board Support Package,板级支持包),主要包含了Demo开发板上的一些硬件外设的驱动程序。
②:Documents
主要包含了APM32F4系列MCU的数据手册。
③:Examples
主要包含了Geehy基于Demo开发板和Libraries、Middlewares中库开发的参考例程,如下图所示:
在这里插入图片描述

图6.1.2 Examples文件夹
④:Libraries
Geehy针对APM32F4系列MCU提供的库,其中就包括了标准库,如下图所示:
在这里插入图片描述

图6.1.3 Libraries文件夹
⑤:Middlewares
包含了一些第三方中间件,例如FatFs、FreeRTOS等,如下图所示:
在这里插入图片描述

图6.1.4 Middlewares文件夹
⑥:Package
包含了针对APM32F4的MDK设备包。
⑦:其他文件
其他文件主要是该SDK的说明文件。
6.2 Libraries文件夹介绍
APM32F4xx_SDK的Libraries文件夹下包含了Geehy提供的各种库,如下图所示:
在这里插入图片描述

图6.2.1 Libraries文件夹
①:APM32F4xx_ETH_Driver
APM32F4系列MCU的以太网相关驱动文件。
②:APM32F4xx_StdPeriphDriver
APM32F4系列的标准库(全名:标准外设驱动库),通过标准库,用户可以十分便捷地进行APM32F4系列MCU的开发,本书的配套例程就是基于该标准库进行编写的。
③:CMSIS
CMSIS(Cortex Microcontroller Software Interface Standard,Cortex微控制器软件接口标准)是Cortex-M处理器系列的与供应商无关的硬件抽象层。使用CMSIS可以为处理器和外设实现一致且简单的软件接口,从而简化软件的重用、缩短微控制器开发人员的学习过程,并缩短新设备的上市时间。通过在所有Cortex-M芯片提供商产品中标准化软件接口,会使成本明显降低,尤其是在创建新项目或将现有转迁到新设备时。
该文件夹为ARM为Cortex内核提供的一些标准接口,主要就是一些与编译器、内核等相关的头文件和DSP库。
④:Device
Geehy基于ARM Cortex处理器设备的CMSIS实现,是要包含了启动文件、初始化代码和一些相关的头文件。
6.3 Geehy标准库介绍
本书配套例程均使用Geehy提供的针对APM32F4系列MCU的标准外设驱动库(标准库)进行开发,该标准库随Geehy提供的APM32F4系列MCU的SDK一起提供。该标准库由一系列的C源文件和头文件组成,基本每一个MCU的外设都提供了一对C源文件和头文件,如下图所示:
在这里插入图片描述

图6.3.1 Geehy标准库结构(部分)
标准库的结构很简单,也非常方便使用,例如要操作GPIO这一外设,仅需包含“apm32f4xx_gpio.h”这一头文件,然后就能够调用标准库提供的配置和操作GPIO等的API函数,实现想实现的功能,在后面的章节中,本书会逐一介绍本书配套实验例程中所使用的标准库API函数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/884977.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

tk切换到mac的code分享

文章目录 前言一、基础环境配置二、开发软件与扩展1.用到的开发软件与平替、扩展情况 总结 前言 最近换上了coding人生的第一台mac,以前一直偏好tk,近来身边的朋友越来越多的用mac了,win的自动更新越来越占磁盘了,而且win11抛弃了…

c语言每日一练(8)

前言:每日一练系列,每一期都包含5道选择题,2道编程题,博主会尽可能详细地进行讲解,令初学者也能听的清晰。每日一练系列会持续更新,暑假时三天之内必有一更,到了开学之后,将看学业情…

Stream流之reduce操作用法

Stream流之reduce操作用法 三种用法 1 Optional<T> reduce(BinaryOperator<T> accumulator);2 T reduce(T identity, BinaryOperator<T> accumulator);3 <U> U reduce(U identity,BiFunction<U, ? super T, U> accumulator,BinaryOperator<…

怎么提取人声消除背景音乐?教你提取人声方法

音频文件中通常会包含大量的背景音乐或噪音&#xff0c;这些噪音会影响人们对于音频内容的理解和感受。因此&#xff0c;提取出音频中的人声对于音频后期处理和相关应用非常重要。提取出音频中的人声可以用于进一步的音频处理&#xff0c;例如进行混音&#xff0c;让人声更加突…

UE4 Cesium 制作指定形状水域

找到该文件&#xff0c;复制它到项目目录中 找到该文件&#xff0c;同时也复制到项目目录中 如图所示 加这几个变量可以控制水体流动以及流速 加上Cesium Cartographic Polygon 拖动图中四个点&#xff0c;按住Alt&#xff0c;可以新增白色节点 在Cesium3DTileset内&#xff0…

拒绝摆烂!C语言练习打卡第二天

&#x1f525;博客主页&#xff1a;小王又困了 &#x1f4da;系列专栏&#xff1a;每日一练 &#x1f31f;人之为学&#xff0c;不日近则日退 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 目录 一、选择题 &#x1f4dd;1.第一题 &#x1f4dd;2.第二题 &#x1f4dd;…

【OFDM系列】DFT为什么能求频率幅度谱?DFT后的X[k]与x(n)幅度的关系?DFT/IDFT底层数学原理?

文章目录 问题引入铺垫一些小公式DFT公式证明DFT公式分解为4部分先考虑k10的情况:再考虑k1≠0的情况: DFT计算后&#xff0c;X(k)与x(n)的关系&#xff1a; Matlab FFT示例代码IDFT公式证明Matlab调用FFT/IFFT并绘图 问题引入 上面是DFT和IDFT的公式&#xff0c;IDFT先不谈。在…

使用原生小程序组件Picker自定义日期时间选择器

使用原生小程序组件Picker自定义日期时间选择器 1、 Picker简单介绍 可以看到Picker类型有5种&#xff0c; 具体可以查看微信开放文档 picker。 Picker&#xff08;选择器&#xff09;是一种常见的用户界面控件&#xff0c;用于从多个选项中选择一个或多个选项。在小程序中&…

2023开学季买什么电容笔好?推荐好用不贵的电容笔

眼见开学季马上就要来了&#xff0c;那么该选哪款电容笔比较好呢&#xff1f;一款苹果原装pencil的售价&#xff0c;已经达到了近千元&#xff0c;这个价格&#xff0c;在许多人看来&#xff0c;实在是太高了。其实&#xff0c;因为平替电容笔价格很实惠&#xff0c;只需一两百…

flutter 中的动画详解 全网最全 动画一篇搞定 一万四千字

flutter 中的动画详解 全网最全 动画一篇搞定 前言一、 基础概念二、 隐式动画三、 显示动画四、 过渡五、 手势动画六、 复杂动画七、 自定义动画八、 物理动画九、 Flutter 动画库十、 动画性能和优化十一、 第三方动画库总结 前言 学习 Flutter 中的动画和过渡是构建流畅用户…

问道管理:2018年以来最低水平,A股质押风险大幅缓解

2018年A股质押巅峰期之后&#xff0c;金融监管“组合拳”继续发力&#xff0c;多地政府及金融安排活跃参加纾困&#xff0c;上市公司股票质押危险化解取得本质成效。A股上市公司现在质押股数量、质押市值、质押份额均降至2018年以来最低水平。 股权质押融资是出质人将股权作为质…

CentOS系统环境搭建(十四)——CentOS7.9安装elasticsearch-head

centos系统环境搭建专栏&#x1f517;点击跳转 关于node的安装请看上一篇CentOS系统环境搭建&#xff08;十三&#xff09;——CentOS7安装nvm&#xff0c;&#x1f517;点击跳转。 CentOS7.9安装elasticsearch-head 文章目录 CentOS7.9安装elasticsearch-head1.下载2.解压3.修…

0基础学习VR全景平台篇 第85篇:智慧眼-如何分配角色的权限?

一、功能说明 角色权限&#xff0c;是指给智慧眼的所有角色成员分配具体的操作权限。 二、后台编辑界面 1、点击“添加权限”&#xff0c;选择其可操作的“权限”。注意权限只能逐项选择&#xff0c;所以如果某个角色拥有多项权限的话&#xff0c;那么需要进行多次添加。“快…

Threejs学习02——使用dat.gui实现主动控制立方体相关操作

使用dat.gui实现主动控制立方体相关操作 这是一个非常简单基础的threejs的学习应用&#xff01;在上一章学习threesj中我们实现立方体在坐标轴中来回移动&#xff0c;那都是通过我们的代码写死的效果&#xff0c;然后立方体的颜色都是通过代码写死的&#xff0c;这一章我们来给…

从零开始学习 Java:简单易懂的入门指南之MAth、System(十二)

常见API&#xff0c;MAth、System 1 Math类1.1 概述1.2 常见方法1.3 算法小题(质数)1.4 算法小题(自幂数) 2 System类2.1 概述2.2 常见方法 1 Math类 1.1 概述 tips&#xff1a;了解内容 查看API文档&#xff0c;我们可以看到API文档中关于Math类的定义如下&#xff1a; Math类…

大数据大数据架构发展史

1.背景 随着数据量的暴增和数据实时性要求越来越高&#xff0c;以及大数据技术的发展驱动企业不断升级迭代&#xff0c;传统数仓经历了以下发展过程&#xff1a;传统数仓架构 -> 离线大数据架构 -> Lambda架构 -> Kappa架构 -> 新一代实时数仓。&#xff08;大部分…

Vitis高层次综合学习——FPGA

高层次综合 什么是高层次综合&#xff1f;就是使用高级语言&#xff08;如C/C&#xff09;来编写FPGA算法程序。 在高层次综合上并不需要制定微架构决策&#xff0c;如创建状态机、数据路径、寄存器流水线等。这些细节可以留给 HLS 工具&#xff0c;通过提供输入约束&#xff…

ATX

导航 (返回顶部) 1. ATX (Advanced Technology Extended)2. 主板3. 电源 3.1 主要版本简表3.2 更换电源需要考虑的问题3.3 电源效率3.4 80 Plus 4. 退役的电源 4.1 24pin主供电接口4.2 12v的CPU供电接口4.3 12v的PCI-E供电接口4.4 SATA电源接口4.5 D型大4pin接口 1. ATX (Adv…

Android Studio Giraffe控制台乱码

这几天在使用Android Studio Giraffe进行一个App的开发&#xff0c;在项目构建的时候&#xff0c;控制台输出中文都是乱码&#xff0c;看着很不爽&#xff0c;进行了两项配置&#xff0c;中文就可以正常输出了&#xff0c;看起来就爽多了。 第一个配置&#xff1a;点击Help菜单…

冠达管理:A股利好!国家队最新出手!拜登紧急发声

号称“国家队”的大基金二期最新出手。 8月15日晚间&#xff0c;华润微公告&#xff0c;子公司润鹏半导体拟增资扩股并引进大基金二期等外部出资者&#xff0c;本次买卖完成后&#xff0c;润鹏半导体注册资本将由24亿元添加至150亿元。其间&#xff0c;大基金二期持股份额将达2…