A1 STM32_HAL库函数 之 HAL系统驱动程序所有函数的介绍及使用
LCORTEX通用驱动提供了一些通用的功能和操作,例如时钟控制、中断管理、GPIO(通用输入输出)、定时器、串口通信等
1 LCORTEX通用驱动程序预览
序号 | 函数名 | 描述 |
---|
1 | HAL_NVIC_SetPriorityGrouping() | 设置中断优先级分组。 |
2 | HAL_NVIC_SetPriority() | 设置中断优先级。 |
3 | HAL_NVIC_EnableIRQ() | 使能中断。 |
4 | HAL_NVIC_DisableIRQ() | 禁用中断。 |
5 | HAL_NVIC_SystemReset() | 系统复位。 |
6 | HAL_SYSTICK_Config() | 配置系统滴答定时器。 |
7 | HAL_MPU_Disable() | 禁用MPU(内存保护单元)。 |
8 | HAL_MPU_Enable() | 启用MPU(内存保护单元)。 |
9 | HAL_MPU_ConfigRegion() | 配置MPU区域。 |
10 | HAL_NVIC_GetPriorityGrouping() | 获取中断优先级分组。 |
11 | HAL_NVIC_GetPriority() | 获取中断优先级。 |
12 | HAL_NVIC_SetPendingIRQ() | 设置中断为挂起状态。 |
13 | HAL_NVIC_GetPendingIRQ() | 获取中断挂起状态。 |
14 | HAL_NVIC_ClearPendingIRQ() | 清除中断挂起状态。 |
15 | HAL_NVIC_GetActive() | 获取活动中断号。 |
16 | HAL_SYSTICK_CLKSourceConfig() | 配置系统滴答定时器时钟源。 |
17 | HAL_SYSTICK_IRQHandler() | 系统滴答定时器中断处理程序。 |
18 | HAL_SYSTICK_Callback() | 系统滴答定时器中断回调函数。 |
使用模板:
#include "stm32f4xx_hal.h"
int main(void) {
HAL_Init();
HAL_MspInit();
HAL_NVIC_SetPriorityGrouping();
HAL_NVIC_SetPriority();
HAL_NVIC_EnableIRQ();
HAL_MPU_Enable();
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();
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) |
功能描述 | 设置中断的优先级 |
输入参数 1 | IRQn:中断号,可参考 stm32f4xx.h 中的枚举类型 IRQn_Type |
输入参数 2 | PreemptPriority:抢占优先级 |
输入参数 3 | SubPriority:子优先级 |
输出参数 | 无 |
返回值 | 无 |
先决条件 | 无 |
被调用函数 | 无 |
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通用驱动程序所有函数的介绍及使用的内容。
有不明白的地方欢迎留言;有建议欢迎留言,我后面编写文档好改进。
创作不容,如果文档对您有帮助,记得给个赞。