1.对某个寄存器的某个位赋值0:
GPIOB_ODR = (1<<0) 第零位赋值为1
GPIOB_ODR = (1<<16) 第16位赋值为1
***但是有个弊端就是,会改变原来的值。***
若不想改变原来的值:
GPIOB_ODR |= (1<<16)
2.对某个寄存器的某个位赋值0,其他位置1:
GPIOB_ODR &= ~(1<<10);
3.stm32 GBIO 使用流程
1.GPIO 首先配置APB2 , 设置GBIOx 使能。
2.配置GPIOx_CRL(CRH), 设置推挽输出和输出速率。
每个端口有16个引脚
每个引脚由4 个位来配置
高八位使用GPIOx_CRH 配置。
低八位使用GPIOx_CRL 配置。
stm32一个功能寄存器32位。一个功能寄存器包括4个普通寄存器。
3. 使用GPIOx_ODR配置16个引脚输出电平
4.按键电路的消抖
当20ms之前属于不稳定状态时可以通过电容吸收电流。
5.stm32要用亦或的方式对LED取反(与51不同)
while(1)
{
if(Key_Scan(KEY1_GPIO_PORT,KEY1_GPIO_PIN ))
{
LED1_GPIO_PORT->ODR ^= LED1_GPIO_PIN ; //亦或
}
}