Проблема с включением светодиода - PullRequest
0 голосов
/ 02 мая 2018

Я пытался включить LED6 на моей плате обнаружения STM32F407VG, но по какой-то причине он не включился.

Мой код выглядит так:

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. Когда я запускаю отладчик, все регистры имеют правильные значения. Загораются только светодиоды LED1 и LED2 - индикатор питания.

Любая помощь будет очень признательна.

С уважением

1 Ответ

0 голосов
/ 02 мая 2018

Выглядит как правильно, но, насколько я помню, stm32f4xx.h не имеет регистров BSRRH и BSRRL (по крайней мере, последних версий) с именем BSRR . Пожалуйста, попробуйте заменить последний ряд на:

GPIOD->ODR |= GPIO_ODR_OD15;

Если этот код будет работать, это означает, что вы установили неверное значение BSRRH или вам необходимо использовать регистр BSRRL.

...