voidGPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef*GPIO_InitStruct)/*其中第一个参数为那组引脚,每组拥有16个引脚,每组都具有不同的寄存器配置地址,第二个参数是一个数据结构,也就是将基本配置信息放在这个数据结构里面,再将这个结构传入函数进行配置*///其中数据机构可以表示为如下typedefstruct{ uint16_t GP...
*`GPIOx`:GPIO端口对象,例如GPIOA。 * `GPIO_Pin`:要初始化的引脚编号,通常为0-15。 * `GPIO_InitStruct`:一个包含初始化参数的结构体,包括输出模式、上拉/下拉电阻、引脚速度等。 函数功能: *根据指定的参数初始化指定的GPIO引脚。 函数实现: `GPIO_Init`函数首先检查引脚是否已经被初始化,如果没有,则进...
1 void GPIO_Init(GPIO_TypeDef*GPIOx, GPIO_InitTypeDef*GPIO_InitStruct); 功能描述: 根据GPIO_InitStruct中指定的参数初始化外设GPIOx寄存器 输入参数1:GPIOx//GPIOx:x 可以是 A,B,C,D 或者 E,来选择 GPIO 外设 输入参数2:GPIO_InitStruct//GPIO_InitStruct:指向结构 GPIO_InitTypeDef 的指针,包含了外设...
同时创建了一个 GPIO_InitTypeDef 类型的结构体变量 GPIO_InitStruct 并初始化为零。 __HAL_RCC_GPIOD_CLK_ENABLE();__HAL_RCC_GPIOC_CLK_ENABLE();__HAL_RCC_GPIOA_CLK_ENABLE(); 通过调用 __HAL_RCC_GPIOD_CLK_ENABLE()、__HAL_RCC_GPIOC_...
学习STM32时,首先要熟悉流水灯例程,在这里就来分析流水灯中的GPIO_Init()函数 例如:流水灯例程中使用的端口是macLED1_GPIO_PORT=GPIOB, 控制的引脚是GPIO_Pin_0, 引脚的模式是GPIO_Mode_Out_PP(通用推挽输出), 引脚的速率是GPIO_Speed_50MHz, 用到的寄存器
串口初始化另一个重要的函数就是HAL_UART_MspInit;我们在uart_init中配置好参数就可以看到开始调用HAL_UART_MspInit。整个调用逻辑如下图: 这部分逻辑很清晰的调用初始化过程。只有在填写HAL_GPIO_Init第一个参数的时候,我反面迷糊了,GPIO有那么多,我是选择GPIOA~E中的哪一个呢? 后来看了原理图才明白,如下: ...
GPIO_Init:这是一个库函数,用于将配置应用到指定的GPIO端口。GPIOC:表示要配置的GPIO端口(这里是...
HAL_GPIO_Init()函数 该函数的作用是根据GPIO_Init中指定的参数初始化GPIOx外设。 由于是对管脚进行初始化定义,一般在mian()函数初始化中。 而在主程序的初始化中,有个注释是初始化所有配置的外设,点击查看这个函数。 在MX_GPIO_Init()可以看到,这里对管脚进行了初始化的配置。 HAL_GPIO_DeInit()函数 该函...
GPIO_Mode_AF_PP = 0x18 }GPIOMode_TypeDef; 配置一个引脚只需要4位寄存器,而上面却定义了8位,仔细研究GPIO_Init()函数后,确定为ST 开发人员加上去的标识位。0x1_ 的是输出标识,其他则为输入模式。 下面看一下GPIO_Init()这个函数: void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruc...