TIMER驱动API描述
TIMER驱动的API主要如下:
| API类别 | API名称 | 描述 |
|---|---|---|
|
初始化 |
hal_timer_base_init() |
初始化TIMER外设,配置计数初值等参数。 |
|
hal_timer_base_deinit() |
反初始化TIMER外设。 |
|
|
hal_timer_base_msp_init() |
初始化TIMER外设所使用的NVIC中断。 |
|
|
hal_timer_base_msp_deinit() |
反初始化TIMER外设所使用的NVIC中断。 |
|
|
IO操作 |
hal_timer_base_start() |
启动计数,轮询方式。 |
|
hal_timer_base_stop() |
停止计数,轮询方式。 |
|
|
hal_timer_base_start_it() |
启动计数,中断方式。 |
|
|
hal_timer_base_stop_it() |
停止计数,中断方式。 |
|
|
控制 |
hal_timer_set_config() |
配置计数器参数。 |
|
中断处理及回调函数 |
hal_timer_irq_handler() |
中断处理函数。 |
|
hal_timer_period_elapsed_callback() |
计数完成的中断回调函数。 |
|
|
状态及错误 |
hal_timer_get_state() |
获取驱动运行状态。 |
下面章节将对各API进行详细描述。
hal_timer_base_init
| 函数原型 |
hal_status_t hal_timer_base_init(timer_handle_t *p_timer) |
|---|---|
| 功能说明 |
根据timer_init_t中的指定参数初始化TIMER时间基单元,并初始化相关的句柄。 |
| 输入参数 |
p_timer:指向timer_handle_t结构体变量的指针,该结构体变量包含指定的TIMER模块的配置信息。 |
| 返回值 |
HAL状态。 |
| 备注 |
hal_timer_base_deinit
| 函数原型 | hal_status_t hal_timer_base_deinit(timer_handle_t *p_timer) |
|---|---|
| 功能说明 | 反初始化TIMER外设。 |
| 输入参数 | p_timer:指向timer_handle_t结构体变量的指针,该结构体变量包含指定的TIMER模块的配置信息。 |
| 返回值 | HAL状态。 |
| 备注 |
hal_timer_base_msp_init
| 函数原型 | void hal_timer_base_msp_init(timer_handle_t *p_timer) |
|---|---|
| 功能说明 | 初始化TIMER所使用的NVIC中断配置。 |
| 输入参数 | p_timer:指向timer_handle_t结构体变量的指针,该结构体变量包含指定的TIMER模块的配置信息。 |
| 返回值 | 无 |
| 备注 | 该函数为weak类型的空函数,开发者需重写该API完成NVIC中断的初始化。 |
hal_timer_base_msp_deinit
| 函数原型 | void hal_timer_base_msp_deinit(timer_handle_t *p_timer) |
|---|---|
| 功能说明 | 反初始化TIMER的NVIC中断配置。 |
| 输入参数 | p_timer:指向timer_handle_t结构体变量的指针,该结构体变量包含指定的TIMER模块的配置信息。 |
| 返回值 | 无 |
| 备注 | 该函数为weak类型的空函数,开发者需重写该API完成NVIC中断的反初始化。 |
hal_timer_base_start
| 函数原型 | hal_status_t hal_timer_base_start(timer_handle_t *p_timer) |
|---|---|
| 功能说明 | 使能TIMER外设,开始计数,轮询方式。 |
| 输入参数 | p_timer:指向timer_handle_t结构体变量的指针,该结构体变量包含指定的TIMER模块的配置信息。 |
| 返回值 | HAL状态。 |
| 备注 | 该API未使能TIMER中断,开发者需调用hal_timer_get_state()获取计数状态。 |
hal_timer_base_stop
| 函数原型 | hal_status_t hal_timer_base_stop(timer_handle_t *p_timer) |
|---|---|
| 功能说明 | 禁用TIMER外设,停止轮询方式下的计数。 |
| 输入参数 | p_timer:指向timer_handle_t结构体变量的指针,该结构体变量包含指定的TIMER模块的配置信息。 |
| 返回值 | HAL状态。 |
| 备注 | 该API未禁用TIMER中断,可与hal_timer_base_start()配合使用。 |
hal_timer_base_start_it
| 函数原型 | hal_status_t hal_timer_base_start_it(timer_handle_t *p_timer) |
|---|---|
| 功能说明 | 使能TIMER外设,开始计数,中断方式。 |
| 输入参数 | p_timer:指向timer_handle_t结构体变量的指针,该结构体变量包含指定的TIMER模块的配置信息。 |
| 返回值 | HAL状态。 |
| 备注 | 该API会使能TIMER中断,计数完成时会调用回调函数hal_timer_period_elapsed_callback()。 |
hal_timer_base_stop_it
| 函数原型 | hal_status_t hal_timer_base_stop_it(timer_handle_t *p_timer) |
|---|---|
| 功能说明 | 禁用TIMER外设,停止中断方式下的计数。 |
| 输入参数 | p_timer:指向timer_handle_t结构体变量的指针,该结构体变量包含指定的TIMER模块的配置信息。 |
| 返回值 | HAL状态。 |
| 备注 | 该API禁止TIMER中断,可与hal_timer_base_start_it()配合使用。 |
hal_timer_set_config
| 函数原型 | hal_status_t hal_timer_set_config(timer_handle_t *p_timer, timer_init_t *p_structure) |
|---|---|
| 功能说明 | 配置TIMER计数器参数。 |
| 输入参数 | p_timer:指向timer_handle_t结构体变量的指针,该结构体变量包含指定的TIMER模块的配置信息。 p_structure:指向timer_init_t结构体变量的指针,该结构体变量包含指定的TIMER计数器参数。 |
| 返回值 | HAL状态。 |
| 备注 | 该API适合在初始化TIMER之后更改计数器配置。 |
hal_timer_irq_handler
| 函数原型 | void hal_timer_irq_handler(timer_handle_t *p_timer) |
|---|---|
| 功能说明 | TIMER中断处理函数。 |
| 输入参数 | p_timer:指向timer_handle_t结构体变量的指针,该结构体变量包含指定的TIMER模块的配置信息。 |
| 返回值 | 无 |
| 备注 |
hal_timer_period_elapsed_callback
| 函数原型 | void hal_timer_period_elapsed_callback(timer_handle_t *p_timer) |
|---|---|
| 功能说明 | TIMER外设计数完成的中断回调函数。 |
| 输入参数 | p_timer:指向timer_handle_t结构体变量的指针,该结构体变量包含指定的TIMER模块的配置信息。 |
| 返回值 | 无 |
| 备注 | 该函数为weak类型的空函数,当开发者需要使用该回调函数时,可重写该API。 |
hal_timer_get_state
| 函数原型 | hal_timer_state_t hal_tim_get_state(timer_handle_t *p_timer) |
|---|---|
| 功能说明 | 获取TIMER运行状态。 |
| 输入参数 | p_timer:指向timer_handle_t结构体变量的指针,该结构体变量包含指定的TIMER模块的配置信息。 |
| 返回值 |
TIM运行状态,该参数的取值可以是下面中的任意一个值:
|
| 备注 |