System驱动API描述
System驱动的API主要包括:
| API类别 | API名称 | 描述 |
|---|---|---|
| 初始化 | hal_init() | 初始化System驱动。 |
| hal_deinit() | 反初始化System驱动。 | |
| hal_msp_init() | 初始化System驱动相关的时钟、GPIO、中断等配置。 | |
| hal_msp_deinit() | 反初始化System驱动相关的时钟、GPIO、中断等配置。 | |
| hal_init_tick() | 初始化SysTick。 | |
| 控制 | hal_suspend_tick() | 暂停并挂起当前的Tick计数。 |
| hal_resume_tick() | 恢复当前的Tick计数。 | |
| 状态及错误 | hal_get_hal_version() | 获取当前的hal驱动版本号。 |
下面章节将对各API进行详细描述。
hal_init
| 函数原型 | hal_status_t hal_init(void) |
|---|---|
| 功能说明 | 初始化System驱动,并调用hal_init_tick()完成Tick的初始化配置。 |
| 输入参数 | 无 |
| 返回值 | HAL状态,该参数可以是下列值中的任意一个:
|
| 备注 | 程序开始运行时需要调用该API。如果Tick计数源为SysTick,则需重写SysTick_IRQHandler,否则轮询方式的API会被永远轮询,导致程序无法继续执行。 |
hal_deinit
| 函数原型 |
hal_status_t hal_deinit(void) |
|---|---|
| 功能说明 |
反初始化System驱动,禁用Tick。 |
| 输入参数 |
无 |
| 返回值 |
HAL状态。 |
| 备注 |
hal_msp_init
| 函数原型 | void hal_msp_init(void) |
|---|---|
| 功能说明 | 初始化System驱动相关的时钟、GPIO、中断等配置。 |
| 输入参数 | 无 |
| 返回值 | 无 |
| 备注 | 该函数为weak类型的空函数,开发者可重写该API以进行相关GPIO、中断等的初始化配置。 |
hal_msp_deinit
| 函数原型 | void hal_msp_deinit(void) |
|---|---|
| 功能说明 | 反初始化System驱动相关的时钟、GPIO、中断等配置。 |
| 输入参数 | 无 |
| 返回值 | 无 |
| 备注 | 该函数为weak类型的空函数,开发者可重写该API以进行相关GPIO、中断等的反初始化配置。 |
hal_init_tick
| 函数原型 | hal_status_t hal_init_tick(uint32_t tick_priority) |
|---|---|
| 功能说明 | 初始化Tick的默认计数源SysTick,设置计数间隔为1 ms,并设置中断优先级为tick_priority。 |
| 输入参数 | tick_priority:需要设置的SysTick优先级,取值范围为0 ~ 15。 |
| 返回值 | HAL状态。 |
| 备注 | 该函数为weak类型,且会在hal_init()中被自动调用。如果开发者需要采用其他Tick计数源,可以重写该API。 |
hal_suspend_tick
| 函数原型 | void hal_suspend_tick(void) |
|---|---|
| 功能说明 | 暂停并挂起Tick计数。 |
| 输入参数 | 无 |
| 返回值 | 无 |
| 备注 | 该函数为weak类型,开发者可根据实际应用重写该API。 |
hal_resume_tick
| 函数原型 | void hal_resume_tick(void) |
|---|---|
| 功能说明 | 恢复Tick计数。 |
| 输入参数 | 无 |
| 返回值 | 无 |
| 备注 | 该函数为weak类型,开发者可根据实际应用重写该API。 |
hal_get_hal_version
| 函数原型 | uint32_t hal_get_hal_version(void) |
|---|---|
| 功能说明 | 获取HAL驱动的版本号。 |
| 输入参数 | 无 |
| 返回值 | HAL版本号:格式为0xAaBbCcDd,其中Aa为主版本号、Bb为子版本号1、Cc为子版本号2、Dd为候选发布版本号,例如:v0.0.1.0版本号表示为0x00000100。 |
| 备注 |