一:通用外设驱动模型
(1) 初始化: 时钟设置,参数设置,IO设置,中断设置(开中断,设NVIC)(可选)
(2)读函数: 从外设读取数据(可选)
(3)写函数: 往外设写数据(可选)
(4)中断服务函数:根据中断标志,处理外设各种中断事务(可选)
二:GPIO配置步骤(重点)
(1) 使能时钟: __HAL_RCC_GPIOx_CLK_ENABLE()
(2) 设置工作模式: __HAL_GPIO_Init()
(3)设置输出状态: HAL_GPIO_WritePin() HAL_GPIO_TogglePin()
(4) 读取输入状态: HAL_GPIO_ReadPin()
三:相关HAL库函数简介
HAL库驱动函数 主要寄存器 功能
__HAL_RCC_GPIOx_CLK_ENABLE() F1:RCC_APB2ENR 开启GPIO时钟
HAL_GPIO_Init() F1:CRL,CRH,ODR 初始化GPIO
HAL_GPIO_WritePin() BSRR 控制IO输出高/低电平
HAL_GPIO_TogglePin() BSRR 调用IO输出电平翻转
HAL_GPIO_ReadPin() IDR 读取IO电平
四:源代码解析
这里我们以使能GPIOA为例:
(1)使用ctrl+shift+F找到这个HAl库函数
(2)定义主要的函数使用或运算|=
(3)寄存器
(4) 1<<2
(5) 1=1<<2 就是把位2设置为1
其他的库函数差不多都是这么使用。