我一直试图在我的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 studio。当我运行调试器时,所有的寄存器都有正确的值。唯一亮起的LED是LED1和LED2 -电源指示灯。
任何帮助都将不胜感激。
亲切的问候
发布于 2018-05-02 19:54:44
看起来是正确的,但我记得stm32f4xx.h没有BSRRH和BSRRL寄存器(至少是最新版本),寄存器名为BSRR。请尝试将最后一行替换为:
GPIOD->ODR |= GPIO_ODR_OD15;如果此代码可以工作,则意味着您设置的BSRRH值不正确或需要使用BSRRL寄存器。
https://stackoverflow.com/questions/50124536
复制相似问题