无法让LED开启

时间:2018-05-01 22:07:57

标签: microcontroller stm32f4

我一直试图打开STM32F407VG发现板上的LED6但由于某种原因它无法开启。

我的代码如下所示:

int main(void)

{

//PD 15

RCC->AHB1ENR |= RCC_AHB1ENR_GPIODEN;

GPIOD->MODER |= GPIO_MODER_MODER15_0;

GPIOD->OTYPER &= ~(GPIO_OTYPER_OT_15);

GPIOD->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR15;

GPIOD->PUPDR &= ~(GPIO_PUPDR_PUPDR15);


GPIOD->BSRRH = GPIO_BSRR_BS_15;


return 0;

}

我正在使用Attolic True studio。当我运行调试器时,寄存器都具有正确的值。唯一点亮的LED是LED1和LED2 - 电源指示灯。

非常感谢任何帮助。

亲切的问候

1 个答案:

答案 0 :(得分:0)

看起来是正确的,但是,我记得stm32f4xx.h没有 BSRRH BSRRL 寄存器(至少是最后版本)寄存器命名为 BSRR 。请尝试将最后一行替换为:

GPIOD->ODR |= GPIO_ODR_OD15;

如果此代码有效,则表示您为BSRRH设置了不正确的值或需要使用BSRRL寄存器。