A7 STM32_HAL库函数 之 LCORTEX通用驱动程序所有函数的介绍及使用

A1 STM32_HAL库函数 之 HAL系统驱动程序所有函数的介绍及使用

  • 1 LCORTEX通用驱动程序预览
    • 1.1 HAL_NVIC_SetPriorityGrouping
    • 1.2 HAL_NVIC_SetPriority
    • 1.3 HAL_NVIC_EnableIRQ
    • 1.4 HAL_NVIC_DisableIRQ
    • 1.5 HAL_NVIC_SystemReset
    • 1.6 HAL_SYSTICK_Config
    • 1.7 HAL_MPU_Disable
    • 1.8 HAL_MPU_Enable
    • 1.9 HAL_MPU_ConfigRegion
    • 1.10 HAL_NVIC_GetPriorityGrouping
    • 1.11 HAL_NVIC_GetPriority
    • 1.12 HAL_NVIC_SetPendingIRQ
    • 1.13 HAL_NVIC_GetPendingIRQ
    • 1.14 HAL_NVIC_ClearPendingIRQ
    • 1.15 HAL_NVIC_GetActive
    • 1.16 HAL_SYSTICK_CLKSourceConfig
    • 1.17 HAL_SYSTICK_IRQHandler
    • 1.18 HAL_SYSTICK_Callback
  • 该文档修改记录:
  • 总结

LCORTEX通用驱动提供了一些通用的功能和操作,例如时钟控制、中断管理、GPIO(通用输入输出)、定时器、串口通信等

1 LCORTEX通用驱动程序预览

序号函数名描述
1HAL_NVIC_SetPriorityGrouping()设置中断优先级分组。
2HAL_NVIC_SetPriority()设置中断优先级。
3HAL_NVIC_EnableIRQ()使能中断。
4HAL_NVIC_DisableIRQ()禁用中断。
5HAL_NVIC_SystemReset()系统复位。
6HAL_SYSTICK_Config()配置系统滴答定时器。
7HAL_MPU_Disable()禁用MPU(内存保护单元)。
8HAL_MPU_Enable()启用MPU(内存保护单元)。
9HAL_MPU_ConfigRegion()配置MPU区域。
10HAL_NVIC_GetPriorityGrouping()获取中断优先级分组。
11HAL_NVIC_GetPriority()获取中断优先级。
12HAL_NVIC_SetPendingIRQ()设置中断为挂起状态。
13HAL_NVIC_GetPendingIRQ()获取中断挂起状态。
14HAL_NVIC_ClearPendingIRQ()清除中断挂起状态。
15HAL_NVIC_GetActive()获取活动中断号。
16HAL_SYSTICK_CLKSourceConfig()配置系统滴答定时器时钟源。
17HAL_SYSTICK_IRQHandler()系统滴答定时器中断处理程序。
18HAL_SYSTICK_Callback()系统滴答定时器中断回调函数。

使用模板:

#include "stm32f4xx_hal.h"int main(void) {// HAL初始化HAL_Init();// 初始化MCU外设相关的引脚或资源HAL_MspInit();// 设置中断优先级分组HAL_NVIC_SetPriorityGrouping();// 设置中断优先级HAL_NVIC_SetPriority();// 使能中断HAL_NVIC_EnableIRQ();// 进行其他操作...// 启用MPUHAL_MPU_Enable();// 配置MPU区域HAL_MPU_ConfigRegion();// 获取中断优先级分组uint32_t priorityGrouping = HAL_NVIC_GetPriorityGrouping();// 获取中断优先级uint32_t priority = HAL_NVIC_GetPriority();// 设置中断为挂起状态HAL_NVIC_SetPendingIRQ();// 获取中断挂起状态uint32_t pendingIRQ = HAL_NVIC_GetPendingIRQ();// 清除中断挂起状态HAL_NVIC_ClearPendingIRQ();// 获取活动中断号uint32_t activeIRQ = HAL_NVIC_GetActive();// 反初始化MCU外设相关的引脚或资源HAL_MspDeInit();return 0;
}

1.1 HAL_NVIC_SetPriorityGrouping

函数名HAL_NVIC_SetPriorityGrouping
函数原形void HAL_NVIC_SetPriorityGrouping(uint32_t PriorityGroup)
功能描述设置 NVIC 的优先级分组
输入参数PriorityGroup:优先级分组,可以是以下值之一:
                            - NVIC_PRIORITYGROUP_0:0 位抢占优先级,4 位子优先级- NVIC_PRIORITYGROUP_1:1 位抢占优先级,3 位子优先级- NVIC_PRIORITYGROUP_2:2 位抢占优先级,2 位子优先级- NVIC_PRIORITYGROUP_3:3 位抢占优先级,1 位子优先级- NVIC_PRIORITYGROUP_4:4 位抢占优先级,0 位子优先级 |

| 输出参数 | 无 |
| 返回值 | 无 |
| 先决条件 | 无 |
| 被调用函数 | 无 |


1.2 HAL_NVIC_SetPriority

函数名HAL_NVIC_SetPriority
函数原形void HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority, uint32_t SubPriority)
功能描述设置中断的优先级
输入参数 1IRQn:中断号,可参考 stm32f4xx.h 中的枚举类型 IRQn_Type
输入参数 2PreemptPriority:抢占优先级
输入参数 3SubPriority:子优先级
输出参数
返回值
先决条件
被调用函数

1.3 HAL_NVIC_EnableIRQ

函数名HAL_NVIC_EnableIRQ
函数原形void HAL_NVIC_EnableIRQ(IRQn_Type IRQn)
功能描述使能中断
输入参数IRQn:中断号,可参考 stm32f4xx.h 中的枚举类型 IRQn_Type
输出参数
返回值
先决条件
被调用函数

1.4 HAL_NVIC_DisableIRQ

函数名HAL_NVIC_DisableIRQ
函数原形void HAL_NVIC_DisableIRQ(IRQn_Type IRQn)
功能描述禁止中断
输入参数IRQn:中断号,可参考 stm32f4xx.h 中的枚举类型 IRQn_Type
输出参数
返回值
先决条件
被调用函数

1.5 HAL_NVIC_SystemReset

函数名HAL_NVIC_SystemReset
函数原形void HAL_NVIC_SystemReset(void)
功能描述系统复位
输入参数
输出参数
返回值
先决条件
被调用函数

1.6 HAL_SYSTICK_Config

函数名HAL_SYSTICK_Config
函数原形HAL_StatusTypeDef HAL_SYSTICK_Config(uint32_t TicksNumb)
功能描述配置 SysTick 计数器,用于系统节拍
输入参数TicksNumb:每个节拍的时钟周期数
输出参数
返回值HAL_StatusTypeDef:配置结果,可以是 HAL_OK 或 HAL_ERROR
先决条件
被调用函数

1.7 HAL_MPU_Disable

函数名HAL_MPU_Disable
函数原形void HAL_MPU_Disable(void)
功能描述禁止 MPU
输入参数
输出参数
返回值
先决条件
被调用函数

1.8 HAL_MPU_Enable

函数名HAL_MPU_Enable
函数原形void HAL_MPU_Enable(void)
功能描述启用 MPU
输入参数
输出参数
返回值
先决条件
被调用函数

1.9 HAL_MPU_ConfigRegion

函数名HAL_MPU_ConfigRegion
函数原形HAL_StatusTypeDef HAL_MPU_ConfigRegion(MPU_Region_InitTypeDef *MPU_Init)
功能描述配置 MPU 区域
输入参数MPU_Init:MPU 区域初始化结构体指针
输出参数
返回值HAL_StatusTypeDef:配置结果,可以是 HAL_OK 或 HAL_ERROR
先决条件
被调用函数

1.10 HAL_NVIC_GetPriorityGrouping

函数名HAL_NVIC_GetPriorityGrouping
函数原形uint32_t HAL_NVIC_GetPriorityGrouping(void)
功能描述获取 NVIC 的优先级分组
输入参数
输出参数
              | 无                                                         |

| 返回值 | uint32_t:优先级分组,可能的值有:
- NVIC_PRIORITYGROUP_0:0 位抢占优先级,4 位子优先级
- NVIC_PRIORITYGROUP_1:1 位抢占优先级,3 位子优先级
- NVIC_PRIORITYGROUP_2:2 位抢占优先级,2 位子优先级
- NVIC_PRIORITYGROUP_3:3 位抢占优先级,1 位子优先级
- NVIC_PRIORITYGROUP_4:4 位抢占优先级,0 位子优先级 |
| 先决条件 | 无 |
| 被调用函数 | 无 |


1.11 HAL_NVIC_GetPriority

函数名HAL_NVIC_GetPriority
函数原形uint32_t HAL_NVIC_GetPriority(IRQn_Type IRQn)
功能描述获取中断的优先级
输入参数IRQn:中断号,可参考 stm32f4xx.h 中的枚举类型 IRQn_Type
输出参数
返回值uint32_t:中断的优先级
先决条件
被调用函数

1.12 HAL_NVIC_SetPendingIRQ

函数名HAL_NVIC_SetPendingIRQ
函数原形void HAL_NVIC_SetPendingIRQ(IRQn_Type IRQn)
功能描述设置中断为待处理状态
输入参数IRQn:中断号,可参考 stm32f4xx.h 中的枚举类型 IRQn_Type
输出参数
返回值
先决条件
被调用函数

1.13 HAL_NVIC_GetPendingIRQ

函数名HAL_NVIC_GetPendingIRQ
函数原形uint32_t HAL_NVIC_GetPendingIRQ(IRQn_Type IRQn)
功能描述获取中断的待处理状态
输入参数IRQn:中断号,可参考 stm32f4xx.h 中的枚举类型 IRQn_Type
输出参数
返回值uint32_t:中断的待处理状态,1 表示待处理,0 表示无待处理
先决条件
被调用函数

1.14 HAL_NVIC_ClearPendingIRQ

函数名HAL_NVIC_ClearPendingIRQ
函数原形void HAL_NVIC_ClearPendingIRQ(IRQn_Type IRQn)
功能描述清除中断的待处理状态
输入参数IRQn:中断号,可参考 stm32f4xx.h 中的枚举类型 IRQn_Type
输出参数
返回值
先决条件
被调用函数

1.15 HAL_NVIC_GetActive

函数名HAL_NVIC_GetActive
函数原形uint32_t HAL_NVIC_GetActive(IRQn_Type IRQn)
功能描述获取中断是否处于活动状态
输入参数IRQn:中断号,可参考 stm32f4xx.h 中的枚举类型 IRQn_Type
输出参数
返回值uint32_t:中断的活动状态,1 表示活动,0 表示非活动
先决条件
被调用函数

1.16 HAL_SYSTICK_CLKSourceConfig

函数名HAL_SYSTICK_CLKSourceConfig
函数原形HAL_StatusTypeDef HAL_SYSTICK_CLKSourceConfig(uint32_t CLKSource)
功能描述配置 SysTick 的时钟来源
输入参数CLKSource:时钟源,可取值为:
                            - SYSTICK_CLKSOURCE_HCLK_DIV8:HCLK/8- SYSTICK_CLKSOURCE_HCLK:HCLK |

| 输出参数 | 无 |
| 返回值 | HAL_StatusTypeDef:配置结果,可以是 HAL_OK 或 HAL_ERROR |
| 先决条件 | 无 |
| 被调用函数 | 无 |


1.17 HAL_SYSTICK_IRQHandler

函数名HAL_SYSTICK_IRQHandler
函数原形void HAL_SYSTICK_IRQHandler(void)
功能描述SysTick 中断处理函数
输入参数
输出参数
返回值
先决条件
被调用函数

1.18 HAL_SYSTICK_Callback

函数名HAL_SYSTICK_Callback
函数原形void HAL_SYSTICK_Callback(void)
功能描述SysTick 回调函数
输入参数
输出参数
返回值
先决条件
被调用函数

该文档修改记录:

修改时间修改说明
2024年4月30日第一次发布,介绍了 A7 STM32_HAL库函数 之 LCORTEX通用驱动程序所有函数的介绍及使用

总结

以上就是A7 STM32_HAL库函数 之 LCORTEX通用驱动程序所有函数的介绍及使用的内容。
有不明白的地方欢迎留言;有建议欢迎留言,我后面编写文档好改进。
创作不容,如果文档对您有帮助,记得给个赞。

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

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

相关文章

亚信安慧AntDB:在数据的宇宙中探索无限可能

亚信安慧AntDB数据库探索出自主可控的数据库架构,在架构层面消除应用对特定数据库的依赖。它以其稳定可靠的性能和高度可伸缩性而备受赞誉。AntDB数据库架构通过引入创新的分布式体系结构,充分利用集群资源,实现数据的高效分布和快速存取。 …

浅谈对进程的理解

一、多任务的概念 1、举个栗子 思考:我们在使用网盘下载资料的时候,为什么要多个任务同时下载呢? 答:多个任务同时执行可以大大提高程序的执行效率 2、提出问题 问题:利用我们目前所学的技术,我们能否…

输入框验证数字类型

校验大于0的数,且小数点后最多为八位小数 let k /^(?!0(\.0)?$)\d(\.\d{1,8})?$/; console.log(k.test(0.00000001)); // true console.log(k.test(0.00000000)); // false console.log(k.test(0.12)); // true console.log(k.test(12.12)); // true输入0-1的数字&#xf…

【计算机考研】408算法大题怎么练?

先说结论:基础阶段学好各个数据结构与,重点是数组、链表、树、图。然后强化阶段突破算法提 在基础阶段,并不需要过于专门地练习算法。相反,基础阶段的重点应该放在对各种数据结构原理的深入理解上。在我个人的经验中,…

python--异常处理

异常处理 例一: try: #可能出现异常代码 except: #如果程序异常,则立刻进入这儿 [finally: #不管是否捕获异常,finally语法快必须要执行!!! #资源关闭,等各种非常重要的操作&…

HarmonyOS实战开发-如何使用 geolocation 实现获取当前位置经纬度

介绍 本示例使用 geolocation 实现获取当前位置的经纬度,然后通过 http 将经纬度作为请求参数,获取到该经纬度所在的城市。通过 AlphabetIndexer 容器组件实现按逻辑结构快速定位容器显示区域。 效果预览 使用说明 1.进入主页,点击国内热门城市,配送地址会更新为选择的城…

【Erlang】【RabbitMQ】Linux(CentOS7)安装Erlang和RabbitMQ

一、系统环境 查版本对应,CentOS-7,选择Erlang 23.3.4,RabbitMQ 3.9.16 二、操作步骤 安装 Erlang repository curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash安装 Erlang package s…

CAXA电子图版2019版 下载地址及安装教程

CAXA电子图板是一款由国内软件公司CAXA开发的专业CAD(计算机辅助设计)软件。它主要用于绘制和编辑各种类型的二维图纸和工程图纸,广泛应用于建筑、机械、电气和电子等行业。 CAXA电子图板具有以下主要功能和特点: 二维绘图&…

Godot 常用UI+布局容器简单介绍

文章目录 前言相关链接Canvasitem:画布Control:UI布局基类Container:布局容器基类AspectRatioContainer:伸缩居中布局BoxContainer:盒子布局ColorPicker:取色器 CenterContainer:不伸缩居中FlowContainer&a…

Java 那些诗一般的 数据类型 (下篇)

本篇会加入个人的所谓鱼式疯言 ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. 🤭🤭🤭可能说的不是那么严谨.但小编初心是能让更多人能接…

【RAG实践】Rerank,让大模型 RAG 更近一步

RAGRerank原理 上一篇【RAG实践】基于LlamaIndex和Qwen1.5搭建基于本地知识库的问答机器人 我们介绍了什么是RAG,以及如何基于LLaMaIndex和Qwen1.5搭建基于本地知识库的问答机器人,原理图和步骤如下: 这里面主要包括包括三个基本步骤&#…

MySQL数据库在Windows和Linux中各种日志的默认路径

1. 二进制日志(Binary Log) 在Linux系统中,二进制日志的默认路径通常为: /var/lib/mysql/hostname-bin.log 其中hostname是你的服务器主机名。如果没有特别配置,日志名可能是mysql-bin.log。 在Windows系统中&…

3.1k Star的特斯拉数据伴侣神器

微信公众号:[开源日记],分享10kStart的优质开源项目。 TeslaMate 适用于你的 Tesla 的功能强大的自托管数据记录器。 用 Elixir 编写数据存储在 Postgres 数据库使用 Grafana 进行可视化和数据分析车辆数据发布到本地 MQTT Broker GitHub数据 3.1k stars121 watching458 forks…

非关系型数据库Redis部署与常用命令

前言 Redis是一个高性能的开源内存数据库,常用于缓存、会话存储和实时数据处理,它是一款非关系型数据库。在生产环境中,Redis通过将数据存储在内存中以及支持多种数据结构,提供了快速的读写能力,并且可通过持久化功能…

龙晰系统运维相关笔记

一、硬盘分区、格式化及挂载(可直接查看另一篇文章硬盘分区格式化,或参考以下命令) #查看硬盘设备号fdisk -lfdisk /dev/vdb#以下为输入fdisk /dev/vdb命令后可以使用的命令行m #查看选项n #新建分区p 新建主分区1 新建1号分区2048 输入初始磁…

laravel如何通过DB获取一条数据的指定字段并转成数组

在 Laravel 中,如果你想要通过原生数据库查询构建器(DB facade)获取一条数据的指定字段,并将其转换为数组,你可以这样做: 首先,使用 select 方法来指定你想要获取的字段,然后使用 w…

L1-020 帅到没朋友分数 (20)

一、题目要求 当芸芸众生忙着在朋友圈中发照片的时候,总有一些人因为太帅而没有朋友。本题就要求你找出那些帅到没有朋友的人。 输入格式: 输入第一行给出一个正整数N(≤100),是已知朋友圈的个数;随后N行…

2023一个前端人的杂谈

酒香也怕巷子深 年底提车,回河北过年,一路总是旅游的牌子,后来去满城滑雪,随拍了几张照片,才更加感受河北的魅力。 感觉仅仅是这一抹黄昏,就让这一行物超所值了,原来那句宣传语所言非虚:这么近,那么美,周末到河北,然而我认为实际的好处,可能不止如此。 作为一个出…

记录一次hss不能防护主机的问题

场景:hss的控制台显示不在防护中,其他云主机并没有这个情况。 故障发生的时间是昨天下午15点半左右,运维同事做了重启网卡的操作。service network restart 排查分析: 于是仔细的查看日志,发现报错如下&#xff1a…

SpringBoot学习之Kibana下载安装和启动(Mac版)(三十二)

一、简介 Kibana是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的。你可以用kibana搜索、查看存放在Elasticsearch中的数据。Kibana与Elasticsearch的交互方式是各种不同的图表、表格、地图等,直观的展示数据,从而达到高级的数据分析与可视化的目的。 …