Включение светодиода в Nucleo 64 F103RB через регистры - PullRequest
0 голосов
/ 18 марта 2020

У меня есть STM32 NUCLEO-64 F103RB, и я использую Keil uVision 5. Я только что тестировал устройство с помощью программного обеспечения CubeMX и смог мигать или включить зеленый светодиод на моем устройстве. Затем я решил сделать то же самое, изменив значения в регистрах на плате в коде C напрямую. Это схема c устройства:

enter image description here

Где я выделил GPIO A и шину, которая подключается к указанному порту. Насколько я понимаю, перед фактическим включением светодиода нужно сделать две вещи: 1 - активировать часы для шины APB2 2 - перевести порт GPIOA 5 (соответствующий светодиоду) в режим вывода.

Я сделал эти два шага. Однако светодиод по-прежнему не включается. Я попытался просмотреть документацию и обнаружил, что PA5 можно использовать в качестве SPI, и я попытался изменить регистр AFIO_MAPR (стр. 184 справочного руководства), но это также не сработало. Я попытался посмотреть на активацию часов для AHB2, но я не совсем понял, как это будет работать. Мой C код:

#include "stm32f10x.h"                  // Device header


int main() {
// Initialise clock of APB2 Bus
    RCC->APB2ENR = (RCC->APB2ENR & 0x0) | RCC_APB2ENR_IOPAEN;

// Put the GPIOA in Output mode
    GPIOA->CRL = (GPIOA->CRL & 0x44444444) | GPIO_CRL_MODE5_1;


// Changinging the ODR Register (Lighting the LED)
    while(1) {
    GPIOA->ODR = (GPIOA->ODR & 0x0) | GPIO_ODR_ODR5;
    }

}

Nucleo64 F103RB Справочное руководство

Nucleo64 F103RB Руководство пользователя

1 Ответ

1 голос
/ 18 марта 2020

Какой шаг?

  1. Включить часы GPIOA.
  2. Сконфигурировать вывод для вывода pu sh -pull.
  3. Переключите штифт.

Для общего GPIO не устанавливайте AF IOs.

RCC->APB2ENR |= RCC_APB2ENR_IOPAEN;
__DSB();
  GPIOA -> CRL &= ~GPIO_CRL_CNF5_Msk;
  GPIOA -> CRL |= GPIO_CRL_MODE5_Msk;

  while(1)
  {
      GPIOA -> ODR ^= GPIO_ODR_ODR5;
      for(volatile unsigned x = 0; x < 500000; x++);
  }

, вам также необходимо проверить паяные перемычки на доска: enter image description here

...