HAL_GPIO_Init()是一个开源平台的函数调用,可以使用STM32系列芯片的HAL库来调用它。在调用此函数之前,需要先设置GPIO所使用的时钟,也就是在RCC(Reset and Clock Control)寄存器中配置相应的位。此外,在使用GPIO之前还需要设置GPIO模式、输出模式、输入模式、上拉/下拉模式等。HAL_GPIO_Init()经过...
成员Pin用于配置选择的引脚,范围GPIO_PIN_0到GPIO_PIN_15,额外还可以选择GPIO_PIN_All和GPIO_PIN_MASK。 成员Mode可以选择: GPIO_MODE_INPUT /* 输入模式 */ GPIO_MODE_OUTPUT_PP /* 推挽输出 */ GPIO_MODE_OUTPUT_OD /* 开漏输出 */ GPIO_MODE_AF_PP /* 复用推挽 */ GPIO_MODE_AF_OD /* 复用开...
void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init); 要写初始化函数,在不参考其他代码的前提下,快速组织代码。首先,函数的入口参数是 GPIO_TypeDef 类型指针和 GPIO_InitTypeDef 类型指针,因为 GPIO_TypeDef 入口参数比较简单,就通过第二个入口参数 GPIO_InitTypeDef类型指针来讲解。 双击GPIO_...
HAL层需要严格按照位于include/hal/soc/gpio.h的实现进行对接, 新建两个文件hal_gpio_xxx.c和hal_gpio_xxx.h,将封装层代码放到这两个文件中,实现上面列出的接口函数。 hal_gpio_init是gpio初始化,不同系列芯片的初始化方式差异较大,我们往往无法直接调用芯片厂商的初始化函数,此时需要对接口进行一些转换以对接芯片...
看看GPIOA在宏定义时,直接定义为了GPIOA的地址
HAL_GPIO_Init(GPIOA, &GPIO_InitStructure);配置复用模式为串口USART1模式;GPIO_InitStruct.Pin = ...
gpio_init_struct.Mode=GPIO_MODE_OUTPUT_PP; 怎么知道“GPIO_MODE_OUTPUT_PP”含义呢?如下图所示: 就是使用最为常用的操作“Goto Definition”去走到底查看这个宏代表的值,那么通过上图就可以知道“GPIO_MODE_OUTPUT_PP”为1。 同样的,查看“GPIO_SPEED_FREQ_HIGH”含义呢?如下图所示: ...
这个文件主要是实现GPIO的引脚配置,学习这个文件注意事项:17.3.1 函数HAL_GPIO_Init 函数原型:函数描述:此函数用于初始化GPIO,此函数主要实现如下功能:函数参数:下面将结构体每个成员做个说明:成员Pull用于配置上拉下拉电阻:成员Speed用于配置GPIO速度等级,有下面四种可选:成员Alternate用于配置引脚...
gp_uart_config.Init.HwFlowCtl=UART_HWCONTROL_NONE; //无硬件流 HAL_UART_Init(&gp_uart_config); } USART初始化与中断回调机制 初始化回调 在HAL库中HAL_UART_Init函数里有这么一句代码 其提示我们可以在该函数中定义GPIO口和时钟使能,因为即便在HAL_UART_Init中配置了USART1 串口1但其对应的GPIO口尚未使...