我一直试图打开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 - 电源指示灯。
非常感谢任何帮助。
亲切的问候
答案 0 :(得分:0)
看起来是正确的,但是,我记得stm32f4xx.h没有 BSRRH 和 BSRRL 寄存器(至少是最后版本)寄存器命名为 BSRR 。请尝试将最后一行替换为:
GPIOD->ODR |= GPIO_ODR_OD15;
如果此代码有效,则表示您为BSRRH设置了不正确的值或需要使用BSRRL寄存器。