// 初始化复用开漏输出模式的GPIOGPIO_InitStruct.Pin = GPIO_PIN_0; GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;// 复用开漏输出模式GPIO_InitStruct.Pull = GPIO_NOPULL;// 不设置上拉或下拉GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;// GPIO速度设置为高速HAL_GPIO_Init(GPIOA, &GPIO_InitStruct)...
RCC_APB2PeriphClockCmd( GPIOx, ENABLE); • 2. 定义一个初始化结构体型的变量 GPIO_InitTypeDef GPIO_InitStructure; • 3. 对结构体变量的各成员赋值 ①GPIO_InitStructure.GPIO_Pin =; ②GPIO_InitStructure.GPIO_Mode =; ③GPIO_InitStructure.GPIO_Speed =; • 4. 调用初始化函数,初始化GPIO GPIO_...
后续补上时钟树的概念RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);// 这个就是GPIO的电气属性配置,因为目前没有使用复用功能GPIO_InitStructure.GPIO_Pin=GPIO_Pin_13;// 输出模式GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out
voidHAL_GPIO_WritePin(GPIO_TypeDef *GPIOx,uint16_tGPIO_Pin, GPIO_PinState PinState){/* Check the parameters */assert_param(IS_GPIO_PIN(GPIO_Pin));assert_param(IS_GPIO_PIN_ACTION(PinState)); if(PinState != GPIO_PIN_RESET){GPIOx-...
第一步是打开GPIO的时钟电路,第二步是是配置对应的GPIO引脚及参数,调用已经封装好的初始化函数,第三...
GPIO初始化结构体 GPIO初始化 先声明GPIO初始化的结构体;然后打开GPIO所挂载的总线的时钟;再对结构体成员进行配置,包括GPIO的引脚,模式,速度;最后对GPIO的结构体进行初始化并选定指定的GPIO组。 GPIO_Mode相关内容 模拟输入、浮空输入、下拉输入、上拉输入、通用开漏输出、通用推挽输出、复用开漏输出、复用推挽输出。
五. 有关GPIO输入/输出模式的初始化(F1系列 HAL库函数) GPIO_InitTypeDef 类型的结构体 typedef struct{ uint32_tPin; /*!<指定要配置的GPIO引脚。该参数可以是@ref GPIO_pins_define 的任意值 */ uint32_t Mode; /*!<指定所选引脚的工作模式。该参数可以是@ref GPIO_mode_define 的值 */ uint32...
GPIO_InitTypeDef GPIO_InitStruct; //GPIOC位于APB2总线上,所以使用APB2外设时钟命令 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE); //初始化引脚为PIN_13 GPIO_InitStruct.GPIO_Pin=GPIO_Pin_13; //只是普通电灯的话GPIO的速度随意 GPIO_InitStruct.GPIO_Speed=GPIO_Speed_10MHz; ...
初始化GPIO的步骤主要有 • 定义GPIO结构体 • 开启时钟 GPIO工作需要提供时钟信号,在初始化结构体之前需要将时钟打开 • 配置结构体成员 GPIO_Pin是想要配置的IO,GPIO_Speed,通常写GPIO_Speed_50MHz,GPIO_Mode是IO的工作模式 • 写入配置 GPIO的工作模式在程序中有定义 ...