Cortex驱动API描述
Cortex驱动的API主要包括:
| 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
| 函数原型 |
void hal_nvic_set_priority_grouping(uint32_t priority_group) |
|---|---|
| 功能说明 |
设置中断优先级分组配置 |
| 输入参数 |
priority_group:待设置的优先级分组配置参数,该参数可以是下列值中的任意一个:
|
| 返回值 |
无 |
| 备注 |
当priority_group设置为NVIC_PRIORITYGROUP_0时,抢占优先级不可用。 |
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
| 函数原型 |
void hal_nvic_enable_irq(IRQn_Type IRQn) |
|---|---|
| 功能说明 |
使能指定的中断号对应的中断。 |
| 输入参数 |
IRQn:待使能中断的中断号,取值范围见gr551xx.h中的中断号列表。 |
| 返回值 |
无 |
| 备注 |
hal_nvic_disable_irq
| 函数原型 |
void hal_nvic_disable_irq(IRQn_Type IRQn) |
|---|---|
| 功能说明 |
禁止指定的中断号对应的中断。 |
| 输入参数 |
IRQn:待禁止中断的中断号,取值范围见gr551xx.h中的中断号列表。 |
| 返回值 |
无 |
| 备注 |
hal_nvic_system_reset
| 函数原型 |
void hal_nvic_system_reset(void) |
|---|---|
| 功能说明 |
执行系统复位。 |
| 输入参数 |
无 |
| 返回值 |
无 |
| 备注 |
hal_systick_config
| 函数原型 |
uint32_t hal_systick_config(uint32_t ticks) |
|---|---|
| 功能说明 |
初始化SysTick计数器,设置计数初值,使能中断并启动计数。 |
| 输入参数 |
ticks:待设置的计数初值,取值范围0x0000_0000 ~ 0xFFFF_FFFF。 |
| 返回值 |
初始化状态,该参数可以是下列值中的任意一个:
|
| 备注 |
hal_nvic_get_priority_grouping
| 函数原型 |
uint32_t hal_nvic_get_priority_grouping(void) |
|---|---|
| 功能说明 |
获取优先级分组配置参数。 |
| 输入参数 |
无 |
| 返回值 |
获取的优先级分组配置参数,该参数可以是下列值中的任意一个:
|
| 备注 |
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:待设置的优先级分组数值,该参数可以下列值中的任意一个:
p_preempt_priority:指向无符号整形变量的指针,该变量用于存储获取的抢占优先级。 p_sub_priority:指向无符号整形变量的指针,该变量用于存储获取的子优先级。 |
| 返回值 |
无 |
| 备注 |
hal_nvic_set_pending_irq
| 函数原型 |
void hal_nvic_set_pending_irq(IRQn_Type IRQn) |
|---|---|
| 功能说明 |
挂起指定的中断号对应的中断 |
| 输入参数 |
IRQn:待挂起中断的中断号, 具体参考gr551xx.h中的中断号列表。 |
| 返回值 |
无 |
| 备注 |
hal_nvic_get_pending_irq
| 函数原型 |
uint32_t hal_nvic_get_pending_irq(IRQn_Type IRQn) |
|---|---|
| 功能说明 |
获取指定的中断号对应的中断的挂起状态。 |
| 输入参数 |
IRQn:待获取中断的中断号,取值范围见gr551xx.h中的中断号列表。 |
| 返回值 |
中断挂起状态,该参数可以是下列值中的任意一个:
|
| 备注 |
hal_nvic_clear_pending_irq
| 函数原型 |
void hal_nvic_clear_pending_irq(IRQn_Type IRQn) |
|---|---|
| 功能说明 |
清除指定的中断号对应的中断的挂起状态。 |
| 输入参数 |
IRQn:待清除挂起状态的中断的中断号, 取值范围见gr551xx.h中的中断号列表。 |
| 返回值 |
无 |
| 备注 |
hal_nvic_get_active
| 函数原型 |
uint32_t hal_nvic_get_active(IRQn_Type IRQn) |
|---|---|
| 功能说明 |
获取指定的中断号对应的中断的活跃状态。 |
| 输入参数 |
IRQn:待获取中断的中断号,取值范围见gr551xx.h中的中断号列表。 |
| 返回值 |
中断活跃状态,该参数可以是下列值中的任意一个:
|
| 备注 |
hal_systick_clk_source_config
| 函数原型 |
void hal_systick_clk_source_config(uint32_t clk_source) |
|---|---|
| 功能说明 |
设置SysTick计数器的时钟源。 |
| 输入参数 |
clk_source:指定的时钟源,该参数可以是下列值中的任意一个:
|
| 返回值 |
无 |
| 备注 |
hal_systick_irq_handler
| 函数原型 |
void hal_systick_irq_handler(void) |
|---|---|
| 功能说明 |
处理SYSTICK中断请求。 |
| 输入参数 |
无 |
| 返回值 |
无 |
| 备注 |
hal_systick_callback
| 函数原型 |
void hal_systick_callback(void) |
|---|---|
| 功能说明 |
SYSTICK中断回调函数。 |
| 输入参数 |
无 |
| 返回值 |
无 |
| 备注 |
该函数为weak类型的空函数,当开发者需要使用该回调函数时,可重写该API。 |