void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); 功能:设置某个IO口为高电平(可同时设置同一端口的多个IO)。底层是通过配置BSRR寄存器。 void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin); 功能:设置某个IO口为低电平(可同时设置同一端口的多个IO)。底层是通过配置BSRR寄存器。
HAL_StatusTypeDefHAL_Init(void) {/* Configure Flash prefetch */#if(PREFETCH_ENABLE !=0)#ifdefined(STM32F101x6) ||defined(STM32F101xB) ||defined(STM32F101xE) ||defined(STM32F101xG) || \\defined(STM32F102x6) ||defined(STM32F102xB) || \\defined(STM32F103x6) ||defined(STM32F103xB) |...
HAL库(Hardware Abstraction Layer)函数实现: GPIO_InitTypeDefGPIO_InitStruct={0};// 使能时钟__HAL_RCC_GPIOB_CLK_ENABLE();// 配置结构体GPIO_InitStruct.Pin=GPIO_PIN_6;// 设置GPIO端口号为6GPIO_InitStruct.Mode=GPIO_MODE_OUTPUT_PP;// 设置端口输出模式为推挽输出GPIO_InitStruct.Pull=GPIO_NOPULL;...
GPIO_InitStructure.GPIO_Pin= GPIO_Pin_6|GPIO_Pin_7;/*选择要控制的引脚*/GPIO_Init(GPIOG,&GPIO_InitStructure);/*开启所有led灯 */GPIO_SetBits(GPIOB,GPIO_Pin_0); GPIO_SetBits(GPIOG,GPIO_Pin_6|GPIO_Pin_7); } 当然啦,上述代码包含了时钟的使能。 通过对时钟和GPIO的分析,我想大家已经对固件...
HAL_GPIO_WritePin(GPIOB, LED_G_Pin|LED_B_Pin, GPIO_PIN_SET);对应GPIO_SetBits(LED1_GPIO_PORT, LED1_GPIO_PIN);GPIO_SetBits(LED2_GPIO_PORT, LED2_GPIO_PIN); 三、GPIO输入 3.1 参数配置 在System Core中选择GPIO设置。 在右边图中找到按键对应引脚,选择GPIO_Input。
CR寄存器的设置既可直接对寄存器进行位操作,也可以通过调用库函数进行操作。 1. 直接操作寄存器 为了便于对寄存器进行位操作,在头文件stm32f10x.h(以F103ZET6标准库为例,HAL库中对应的头文件为stm32f103xe.h)中定义了大量的宏、枚举类和结构体,来实现与寄存器地址的映射。以GPIOA为例,从上到下的映射关系为: ...
1. 直接操作寄存器:通过使用寄存器来设置或清除GPIO引脚的输出状态。例如,通过直接设置GPIO输出寄存器的某一位,可以控制对应的GPIO引脚输出高电平或低电平。2. 使用库函数:利用库函数来设置GPIO引脚的输出状态。例如,通过STM32标准外设库中的GPIO_Init函数初始化GPIO引脚,并调用GPIO_SetBits和GPIO_Reset...
- 设置输出高电平:`HAL_GPIO_WritePin()` 或 `GPIO_SetBits()`- 切换输出状态:`HAL_GPIO_...
void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) 参数: GPIOx - 初始化哪一组GPIO(GPIOF) GPIO_Pin - 哪个脚 (2)时钟使能库函数 void RCC_AHB1PeriphClockCmd(uint32_t RCC_AHB1Periph, FunctionalState NewState) ...
单片机平台编写 GPIO 口程序,以 STM32F103 为例,有三种模式:库函数、HAL库、寄存器。 使用库函数的方式操控 GPIO 方式如下: 代码语言:javascript 复制 voidLED_Init(void){GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//使能 PB 端口时钟GPIO_InitStructure.GPIO_Pin=...