STM32标准库与HAL库,寄存器对照表
日期: 2020-07-19 分类: 跨站数据测试 520次阅读
由于STM32标准库出现的时间早,现在市面上STM32的资料很多都是标准库的,但随着HAL库的CUBEMX的广泛使用,两个库之间的效率,内存使用,方便程度不同,为满足不同人的需求,两个库之间的相互转换十分重要。
1.本文提供部分常用函数作为参考,将实现功能相同的函数放在一起,具体定义和细微差异可以自行在编译器中搜索。
2.本文随作者工作情况不断更新。
GPIO部分
获取IO电平状态:
标准库:
uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
//举例:
state = GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_7)
HAL库:
GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
//举例:
state = HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_7)
定时器部分
使能/失能定时器
标准库:
void TIM_Cmd(TIM_TypeDef* TIMx, FunctionalState NewState) //函数
//举例:
TIM_Cmd(TIM2, ENABLE);
TIM_Cmd(TIM2, DISABLE);
HAL库:
//1.使能:
#define __HAL_TIM_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR1|=(TIM_CR1_CEN)) //宏定义
//举例:
__HAL_TIM_ENABLE(&htim14);
//2.失能:
#define __HAL_TIM_DISABLE(__HANDLE__)
//举例:
__HAL_TIM_DISABLE(&htim14);
获得计数器计数值:
标准库:
uint16_t TIM_GetCounter(TIM_TypeDef* TIMx)
//举例:
num = TIM_GetCounter(TIM3);
HAL库:
#define __HAL_TIM_GET_COUNTER(__HANDLE__) ((__HANDLE__)->Instance->CNT)
//举例:
__HAL_TIM_GET_COUNTER(&htim14);
寄存器:
//直接CNT寄存器读值
//举例:
num = TIM14->CNT;
除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog
标签:stm32 stm32
精华推荐