Appearance
GPIO
基础知识看固件库相关的笔记
四步模型
- 初始化: 设置时钟, 设置参数(模式), IO设置, 中断设置(开中断, 设置NVIC)
- 读函数: 从外设读取数据
- 写函数: 向外设写入数据
- 中断服务函数: 根据中断位处理各种中断
配置步骤
- 使能时钟__HAL_RCC_GPIOx_CLK_ENABLE()
- 设置工作模式 HAL_GPIO_Init()
- 设置输出状态 HAL_GPIO_WritePin(), HAL_GPIO_TogglePin()
- 读取状态HAL_GPIO_ReadPin()
c
#define __HAL_RCC_GPIOB_CLK_ENABLE() do { \
__IO uint32_t tmpreg; \
SET_BIT(RCC->APB2ENR, RCC_APB2ENR_IOPBEN);\
/* Delay after an RCC peripheral clock enabling */\
tmpreg = READ_BIT(RCC->APB2ENR, RCC_APB2ENR_IOPBEN);\
UNUSED(tmpreg); \
} while(0U)
点亮LED
GPIO可以使用的模式, 推挽输出的时候可以实现, 使用推挽输出的由于没有办法输出高电平, 但是有高组态, 所以也可以使用
如果使用共阴极的时候使用的是推挽才可以正常使用
电流可以比较低只是亮度比较低
重映射
以时钟作为例子
__HAL_AFIO_REMAP_TIM3_PARTIAL()