void LED_Init(void){RCC->APB2ENR|=1<<4; //使能时钟 PORTCGPIOC->CRL&=0XFFF0FFFF;//PC4 配置位清零GPIOC->CRL|=0X00030000;//PC4 推挽输出GPIOC->ODR|=1<<4; //PC4 输出高电平,熄灭。等价于 GPIOC->ODR |=0X10;}intmain(){GPIOC->BSRR =0x10;//设置对应的 ODRy 位为1,给高电平-...
在STM32中使用GPIO需要配置以下三个寄存器:GPIOx_CRH,GPIOx_CRL和GPIOx_ODR。 GPIOx_CRL和GPIOx_CRH控制GPIO的运行模式和输入输出模式,其具体功能如下: (1)模式配置 在GPIOx_CRL和GPIOx_CRH中设置4个寄存位的值,可以确定GPIO的运行模式和输入输出模式。对于控制GPIOA的状态码,需要使用GPIOA_CRL寄存器和GPIOA_...
GPIOB->CRL&=0x00FFFFFF; //这一步是位运算操作,特别注意这个& , 意思是先将之前的配置清除为0. GPIOB->CRL|=0x33000000; //这一步是位运算操作,特别注释这个|,意思是将新的配置赋值进去。 1. 2. **【3】如果我要将PC2配置为推挽输出模式,应该怎么写代码? ** 看下面的代码学习。 GPIOC->CRL&=...
我们现在需要按键检测,这是检测GPIO输入,还是同样的我们需要先去设置GPIO 这个在上面的基础上就可以继续编辑。 首先查阅原理图,可以发现按键分别是PA0和PC13,我们把PA0和PC13配置为输入,然后生成工程。 我们打开工程,在主函数的while里面添加下面代码: if(HAL_GPIO_ReadPin(key1_GPIO_Port,key1_Pin)==GPIO_PIN_S...
在STM32中配置GPIO端口的步骤通常包括以下几个关键环节: 1. 确定GPIO端口号和引脚号 首先,需要确定要使用的GPIO端口(如GPIOA、GPIOB等)和具体的引脚号(如PA0、PB1等)。这通常根据具体的硬件设计和功能需求来确定。 2. 启用GPIO端口的时钟 在STM32中,每个GPIO端口都有其独立的时钟,需要通过RCC(时钟控制器)来...
1.GPIO初始化配置 GPIO_InitTypeDef GPIO_InitStructure; 定义结构体变量 RCC_APB2PeriphClockCmd(RCC_...
关于配置GPIO输出状态的三个寄存器ODR、BRR、BSRR 1.ODR寄存器:可读可写,既能控制管脚为高电平,也能控制管脚为低电平。管脚对应位写1为高电平,写0为低电平。 2.BSRR只写寄存器:既能控制管脚为高电平,也能控制管脚为低电平。 对寄存器高16bit写1对应管脚为低电平,对寄存器低16bit写1对应管脚为高电平;写0无动...
• 锁定机制(GPIOx_LCKR),可冻结 I/O 端口配置 • 模拟功能选择寄存器(GPIOx_MODER和GPIOx_ASCR) • 复用功能选择寄存器(GPIOx_MODER,GPIOx_AFRL,和GPIOx_AFRH) • 快速翻转,每次翻转最快只需要两个时钟周期 • 引脚复用非常灵活,允许将 I/O 引脚用作 GPIO 或多种外设功能中的一种 ...
1.在复位期间及复位刚刚完成后,复用功能尚未激活时,IO 端口会被配置为输入浮空模式。 2.输入数据寄存器 (GPIOx_IDR) 每隔 1 个 AHB1 时钟周期捕获一次 IO 引脚的数据。 复用(Alternate functions) MCU的外设引脚与GPIO口共用,默认作为IO口,但可配置作为多种外设用途。这种配置GPIO口为特定外设功能引脚的操作就叫...