STM32G474xx HAL用户手册
函数
stm32g4xx_hal_cortex.c 文件参考

CORTEX HAL模块驱动程序。此文件提供固件函数来管理CORTEX的以下功能:+ 初始化和配置函数 + 外设控制功能。 更多...

#include "stm32g4xx_hal.h"

转到此文件的源代码。

函数

void HAL_NVIC_SetPriorityGrouping (uint32_t PriorityGroup)
 使用所需的解锁序列设置优先级分组字段(抢占优先级和子优先级)。
void HAL_NVIC_SetPriority (IRQn_Type IRQn, uint32_t PreemptPriority, uint32_t SubPriority)
 设置中断的优先级。
void HAL_NVIC_EnableIRQ (IRQn_Type IRQn)
 在NVIC中断控制器中启用特定设备的中断。
void HAL_NVIC_DisableIRQ (IRQn_Type IRQn)
 在NVIC中断控制器中禁用特定设备的中断。
void HAL_NVIC_SystemReset (void)
 发起系统复位请求以复位MCU。
uint32_t HAL_SYSTICK_Config (uint32_t TicksNumb)
 初始化系统定时器并启用中断,启动系统Tick定时器(SysTick):计数器处于自由运行模式以产生周期性中断。
uint32_t HAL_NVIC_GetPriorityGrouping (void)
 从NVIC中断控制器获取优先级分组字段。
void HAL_NVIC_GetPriority (IRQn_Type IRQn, uint32_t PriorityGroup, uint32_t *pPreemptPriority, uint32_t *pSubPriority)
 获取中断的优先级。
void HAL_NVIC_SetPendingIRQ (IRQn_Type IRQn)
 设置外部中断的挂起位。
uint32_t HAL_NVIC_GetPendingIRQ (IRQn_Type IRQn)
 获取挂起中断(读取NVIC中的挂起寄存器并返回指定中断的挂起位)。
void HAL_NVIC_ClearPendingIRQ (IRQn_Type IRQn)
 清除外部中断的挂起位。
uint32_t HAL_NVIC_GetActive (IRQn_Type IRQn)
 获取活动中断(读取NVIC中的活动寄存器并返回活动位)。
void HAL_SYSTICK_CLKSourceConfig (uint32_t CLKSource)
 配置SysTick时钟源。
void HAL_SYSTICK_IRQHandler (void)
 处理SysTick中断请求。
__weak void HAL_SYSTICK_Callback (void)
 SysTick回调。
void HAL_MPU_Enable (uint32_t MPU_Control)
 启用MPU。
void HAL_MPU_Disable (void)
 禁用MPU。
void HAL_MPU_EnableRegion (uint32_t RegionNumber)
 启用MPU区域。
void HAL_MPU_DisableRegion (uint32_t RegionNumber)
 禁用MPU区域。
void HAL_MPU_ConfigRegion (MPU_Region_InitTypeDef *MPU_Init)
 初始化和配置要保护的区域和内存。

详细描述

CORTEX HAL模块驱动程序。此文件提供固件函数来管理CORTEX的以下功能:+ 初始化和配置函数 + 外设控制功能。

作者:
MCD应用团队
注意:

版权所有 (c) 2019 STMicroelectronics。保留所有权利。

本软件根据LICENSE文件中的条款获得许可,该文件位于本软件组件的根目录中。如果本软件未附带LICENSE文件,则按原样提供。

  ==============================================================================
                        ##### 如何使用此驱动程序 #####
  ==============================================================================

    [..]
    *** 如何使用CORTEX HAL驱动程序配置中断 ***
    ===========================================================
    [..]
    本节提供用于配置NVIC中断(IRQ)的函数。
    Cortex-M4异常由CMSIS函数管理。

    (#) 使用HAL_NVIC_SetPriorityGrouping()函数配置NVIC优先级分组。
    (#) 使用HAL_NVIC_SetPriority()配置所选IRQ通道的优先级。
    (#) 使用HAL_NVIC_EnableIRQ()启用所选IRQ通道。

     -@- 当选择NVIC_PRIORITYGROUP_0时,将无法进行IRQ抢占。
         挂起IRQ优先级将仅由子优先级管理。

     -@- IRQ优先级顺序(按从高到低排序):
        (+@) 最低抢占优先级
        (+@) 最低子优先级
        (+@) 最低硬件优先级(IRQ编号)

    [..]
    *** 如何使用CORTEX HAL驱动程序配置SysTick ***
    ========================================================
    [..]
    为时基设置SysTick定时器。

   (+) HAL_SYSTICK_Config()函数调用SysTick_Config()函数,这是CMSIS函数,它:
        (++) 使用作为函数参数传递的值配置SysTick重载寄存器。
        (++) 将SysTick IRQ优先级配置为最低值(0x0F)。
        (++) 重置SysTick计数器寄存器。
        (++) 将SysTick计数器时钟源配置为核心时钟源(HCLK)。
        (++) 启用SysTick中断。
        (++) 启动SysTick计数器。

   (+) 您可以在HAL_SYSTICK_Config()函数调用后,通过调用宏
       __HAL_CORTEX_SYSTICKCLK_CONFIG(SYSTICK_CLKSOURCE_HCLK_DIV8)
       将SysTick时钟源更改为HCLK_Div8。__HAL_CORTEX_SYSTICKCLK_CONFIG()宏定义在stm32g4xx_hal_cortex.h文件中。

   (+) 您可以在HAL_SYSTICK_Config()函数调用后,通过调用
       HAL_NVIC_SetPriority(SysTick_IRQn,...)函数来更改SysTick IRQ优先级。
       HAL_NVIC_SetPriority()调用NVIC_SetPriority()函数,这是CMSIS函数。

   (+) 要调整SysTick时基,请使用以下公式:

       重载值 = SysTick计数器时钟(Hz)× desired Time base(s)
       (++) 重载值是传递给HAL_SYSTICK_Config()函数的参数
       (++) 重载值不应超过0xFFFFFF

  

下表给出了根据HAL_NVIC_SetPriorityGrouping()函数配置的优先级分组设置所允许的抢占优先级和子优先级的值。

========================================================================================================================== NVIC_PriorityGroup | NVIC_IRQChannelPreemptionPriority | NVIC_IRQChannelSubPriority | 描述 ========================================================================================================================== NVIC_PRIORITYGROUP_0 | 0 | 0-15 | 0位用于抢占优先级 | | | 4位用于子优先级 -------------------------------------------------------------------------------------------------------------------------- NVIC_PRIORITYGROUP_1 | 0-1 | 0-7 | 1位用于抢占优先级 | | | 3位用于子优先级 -------------------------------------------------------------------------------------------------------------------------- NVIC_PRIORITYGROUP_2 | 0-3 | 0-3 | 2位用于抢占优先级 | | | 2位用于子优先级 -------------------------------------------------------------------------------------------------------------------------- NVIC_PRIORITYGROUP_3 | 0-7 | 0-1 | 3位用于抢占优先级 | | | 1位用于子优先级 -------------------------------------------------------------------------------------------------------------------------- NVIC_PRIORITYGROUP_4 | 0-15 | 0 | 4位用于抢占优先级 | | | 0位用于子优先级 ==========================================================================================================================

定义于文件stm32g4xx_hal_cortex.c中。