要求实现功能:按下按键对应的灯亮,按键KEY1--灯LED1,按键KEY2---灯LED2,按键KEY3---灯LED3
出现问题:按下按键KEY1时LED1灯亮,风扇转动和蜂鸣器响。
问题根源:
用的是寄存器写法,用端口上某个位时,‘~’取反和按位与‘&’或按位或‘|’其他的位会受到影响,一个端口共32位。
解决方法:
//想把那个位置1,就用0x01左移多少位,然后或上原来的值
//GPIOC->ODR |= (1<<13);
//想把那个位置0,就用0x01左移多少位并按位取反,然后与上原来的值
//GPIOC->ODR &= ~(1<<13);