STM32f4上的用户按钮

时间:2013-10-19 14:34:06

标签: c stm32f4discovery

我试图在按下用户按钮时打开LED

我认为我已经启用了正确的外设时钟和正确的寄存器。按钮位于porta位0

这是我的代码......任何帮助都会很棒。对不起,如果有点简单,我还在学习董事会。

int main (void)
{
RCC->AHB1ENR=0x9;           
GPIOA->MODER = 0x00000002; 
GPIOD->MODER = 0x55000000;  
GPIOD->OTYPER = 0;          
GPIOD->OSPEEDR = 0;         
GPIOD->PUPDR = 0;           
GPIOA->PUPDR = 0;
GPIOA->OTYPER = 0;
GPIOA->OSPEEDR = 0;

    while(1)
{
    if(GPIOA->IDR == 0x0001){
    GPIOD->ODR = 0xF000;                        
    }
    else{
        GPIOD->ODR = 0;         

        }   
    }   
}

1 个答案:

答案 0 :(得分:2)

我不知道STM32f4,但我猜这不是

if(GPIOA->IDR == 0x0001)

你想要

if ((GPIOA->IDR & 0x0001) != 0)

原始检查低位开启且所有其他位都关闭,而新版本只检查低位并忽略其余位。