CN / EN
文档反馈
感谢关注汇顶文档,期待您的宝贵建议!
感谢您的反馈,祝您愉快!
无匹配项 共计114个匹配页面

Cortex驱动API描述

Cortex驱动的API主要包括:

表 11 Cortex驱动的HAL层APIs
API类别 API名称 描述

初始化

hal_nvic_set_priority_grouping()

设置中断优先级分组配置。

hal_nvic_set_priority()

设置中断优先级。

hal_nvic_enable_irq()

使能中断。

hal_nvic_disable_irq()

禁止中断。

hal_nvic_system_reset()

系统复位。

hal_systick_config()

SysTick配置。

控制类

hal_nvic_get_priority_grouping()

获取中断优先级分组配置。

hal_nvic_get_priority()

获取中断优先级。

hal_nvic_set_pending_irq()

挂起中断。

hal_nvic_get_pending_irq()

获取中断挂起状态。

hal_nvic_clear_pending_irq()

清除中断挂起状态。

hal_nvic_get_active()

获取中断活跃状态。

hal_systick_clk_source_config()

设置SysTick时钟源。

中断处理及回调函数

hal_systick_irq_handler()

中断处理函数。

hal_systick_callback()

中断回调函数。

下面章节将对各API进行详细描述。

hal_nvic_set_priority_grouping

表 12 hal_nvic_set_priority_grouping接口
函数原型

void hal_nvic_set_priority_grouping(uint32_t priority_group)

功能说明

设置中断优先级分组配置

输入参数
priority_group:待设置的优先级分组配置参数,该参数可以是下列值中的任意一个:
  • NVIC_PRIORITYGROUP_0(0位抢占优先级、8位子优先级)
  • NVIC_PRIORITYGROUP_1(1位抢占优先级、7位子优先级)
  • NVIC_PRIORITYGROUP_2(2位抢占优先级、6位子优先级)
  • NVIC_PRIORITYGROUP_3(3位抢占优先级、5位子优先级)
  • NVIC_PRIORITYGROUP_4(4位抢占优先级、4位子优先级)
  • NVIC_PRIORITYGROUP_5(5位抢占优先级、3位子优先级)
  • NVIC_PRIORITYGROUP_6(6位抢占优先级、2位子优先级)
  • NVIC_PRIORITYGROUP_7(7位抢占优先级、1位子优先级)
返回值

备注

当priority_group设置为NVIC_PRIORITYGROUP_0时,抢占优先级不可用。

hal_nvic_set_priority

表 13 hal_nvic_set_priority接口
函数原型

void hal_nvic_set_priority(IRQn_Type IRQn, uint32_t preempt_priority, uint32_t sub_priority)

功能说明

设置指定的中断号对应的中断抢占优先级和子优先级。

输入参数

IRQn:待设置中断的中断号,具体参考gr551xx.h中的中断号列表。

preempt_priority:配置的抢占优先级,取值范围0 ~ 127,具体参考gr551xx.h中的Cortex_NVIC_Priority_Table表中所述。

sub_priority:配置的子优先级,取值范围0 ~ 255,具体参考gr55xx_hal_cortex.c中的Cortex_NVIC_Priority_Table表。

返回值

备注

hal_nvic_enable_irq

表 14 hal_nvic_enable_irq接口
函数原型

void hal_nvic_enable_irq(IRQn_Type IRQn)

功能说明

使能指定的中断号对应的中断。

输入参数

IRQn:待使能中断的中断号,取值范围见gr551xx.h中的中断号列表。

返回值

备注

hal_nvic_disable_irq

表 15 hal_nvic_disable_irq接口
函数原型

void hal_nvic_disable_irq(IRQn_Type IRQn)

功能说明

禁止指定的中断号对应的中断。

输入参数

IRQn:待禁止中断的中断号,取值范围见gr551xx.h中的中断号列表。

返回值

备注

hal_nvic_system_reset

表 16 hal_nvic_system_reset接口
函数原型

void hal_nvic_system_reset(void)

功能说明

执行系统复位。

输入参数

返回值

备注

hal_systick_config

表 17 hal_systick_config接口
函数原型

uint32_t hal_systick_config(uint32_t ticks)

功能说明

初始化SysTick计数器,设置计数初值,使能中断并启动计数。

输入参数

ticks:待设置的计数初值,取值范围0x0000_0000 ~ 0xFFFF_FFFF。

返回值

初始化状态,该参数可以是下列值中的任意一个:

  • 0(初始化成功)
  • 1(初始化失败)
备注

hal_nvic_get_priority_grouping

表 18 hal_nvic_get_priority_grouping接口
函数原型

uint32_t hal_nvic_get_priority_grouping(void)

功能说明

获取优先级分组配置参数。

输入参数

返回值

获取的优先级分组配置参数,该参数可以是下列值中的任意一个:

  • NVIC_PRIORITYGROUP_0(0位抢占优先级、8位子优先级)
  • NVIC_PRIORITYGROUP_1(1位抢占优先级、7位子优先级)
  • NVIC_PRIORITYGROUP_2(2位抢占优先级、6位子优先级)
  • NVIC_PRIORITYGROUP_3(3位抢占优先级、5位子优先级)
  • NVIC_PRIORITYGROUP_4(4位抢占优先级、4位子优先级)
  • NVIC_PRIORITYGROUP_5(5位抢占优先级、3位子优先级)
  • NVIC_PRIORITYGROUP_6(6位抢占优先级、2位子优先级)
  • NVIC_PRIORITYGROUP_7(7位抢占优先级、1位子优先级)
备注

hal_nvic_get_priority

表 19 hal_nvic_get_priority接口
函数原型

void hal_nvic_get_priority(IRQn_Type IRQn, uint32_t priority_group, uint32_t *p_preempt_priority, uint32_t *p_sub_priority)

功能说明

根据优先级分组,获取指定的中断号对应的中断抢占优先级及子优先级。

输入参数

IRQn:待使能中断的中断号,具体参考gr551xx.h中的中断号列表。

priority_group:待设置的优先级分组数值,该参数可以下列值中的任意一个:

  • NVIC_PRIORITYGROUP_0(0位抢占优先级、8位子优先级)
  • NVIC_PRIORITYGROUP_1(1位抢占优先级、7位子优先级)
  • NVIC_PRIORITYGROUP_2(2位抢占优先级、6位子优先级)
  • NVIC_PRIORITYGROUP_3(3位抢占优先级、5位子优先级)
  • NVIC_PRIORITYGROUP_4(4位抢占优先级、4位子优先级)
  • NVIC_PRIORITYGROUP_5(5位抢占优先级、3位子优先级)
  • NVIC_PRIORITYGROUP_6(6位抢占优先级、2位子优先级)
  • NVIC_PRIORITYGROUP_7(7位抢占优先级、1位子优先级)

p_preempt_priority:指向无符号整形变量的指针,该变量用于存储获取的抢占优先级。

p_sub_priority:指向无符号整形变量的指针,该变量用于存储获取的子优先级。

返回值

备注

hal_nvic_set_pending_irq

表 20 hal_nvic_set_pending_irq接口
函数原型

void hal_nvic_set_pending_irq(IRQn_Type IRQn)

功能说明

挂起指定的中断号对应的中断

输入参数

IRQn:待挂起中断的中断号, 具体参考gr551xx.h中的中断号列表。

返回值

备注

hal_nvic_get_pending_irq

表 21 hal_nvic_get_pending_irq接口
函数原型

uint32_t hal_nvic_get_pending_irq(IRQn_Type IRQn)

功能说明

获取指定的中断号对应的中断的挂起状态。

输入参数

IRQn:待获取中断的中断号,取值范围见gr551xx.h中的中断号列表。

返回值

中断挂起状态,该参数可以是下列值中的任意一个:

  • 0(中断处于未挂起状态)
  • 1(中断处于挂起状态)
备注

hal_nvic_clear_pending_irq

表 22 hal_nvic_clear_pending_irq接口
函数原型

void hal_nvic_clear_pending_irq(IRQn_Type IRQn)

功能说明

清除指定的中断号对应的中断的挂起状态。

输入参数

IRQn:待清除挂起状态的中断的中断号, 取值范围见gr551xx.h中的中断号列表。

返回值

备注

hal_nvic_get_active

表 23 hal_nvic_get_active接口
函数原型

uint32_t hal_nvic_get_active(IRQn_Type IRQn)

功能说明

获取指定的中断号对应的中断的活跃状态。

输入参数

IRQn:待获取中断的中断号,取值范围见gr551xx.h中的中断号列表。

返回值

中断活跃状态,该参数可以是下列值中的任意一个:

  • 0(中断还未被处理)
  • 1(中断正在被处理)
备注

hal_systick_clk_source_config

表 24 hal_systick_clk_source_config接口
函数原型

void hal_systick_clk_source_config(uint32_t clk_source)

功能说明

设置SysTick计数器的时钟源。

输入参数

clk_source:指定的时钟源,该参数可以是下列值中的任意一个:

  • SYSTICK_CLKSOURCE_REFCLK(外部参考时钟)
  • SYSTICK_CLKSOURCE_HCLK(AHB时钟)
返回值

备注

hal_systick_irq_handler

表 25 hal_systick_irq_handler接口
函数原型

void hal_systick_irq_handler(void)

功能说明

处理SYSTICK中断请求。

输入参数

返回值

备注

hal_systick_callback

表 26 hal_systick_callback接口
函数原型

void hal_systick_callback(void)

功能说明

SYSTICK中断回调函数。

输入参数

返回值

备注

该函数为weak类型的空函数,当开发者需要使用该回调函数时,可重写该API。

扫描关注

打开微信,使用“扫一扫”即可关注。