Как найти адрес регистров в STM32L4x6

Я использую плату NUCLEO-L476RG. Я пытаюсь включить светодиод на плате. Я должен установить значение регистра в 0x01, чтобы включить часы на порт А.

Помогите, пожалуйста, найти адрес регистра "Регистр включения периферийных часов AHB2 (RCC_AHB2ENR)" в 0x01.

Я программирую на ассемблере и поэтому нахожу адрес напрямую.

Я узнал адрес части GPIO здесь:

LDR R0, =0x48000000; GPIOA_MODER address
LDR R1, =0xABFFF7FF; GPIOA_MODER value
STR R1, [R0];

LDR R0, =0x48000004; GPIOA_OTYPER address
LDR R1, =0x00000000; GPIOA_OTYPER value
STR R1, [R0];

LDR R0, =0x48000014; GPIOA_ODR address
LDR R1, =0x00000000; GPIOA_ODR value
STR R1, [R0];

Пожалуйста, сообщите мне, как найти адрес регистров. Спасибо!

Подробности о продукте здесь: http://www.st.com/content/st_com/en/products/evaluation-tools/product-evaluation-tools/mcu-eval-tools/stm32-mcu-eval-tools/stm32-mcu-nucleo/nucleo-l476rg.html

Я могу ошибаться, но у меня есть здесь вычисленный адрес: кто-нибудь может подтвердить:

#define RCC_BASE              (AHB1PERIPH_BASE + 0x1000)
#define AHB1PERIPH_BASE       (PERIPH_BASE + 0x00020000)
#define PERIPH_BASE           ((uint32_t)0x40000000) /*!< Peripheral base address */

следовательно RCC_BASE = 0x40000000 + 0x00020000 + 0x1000 + 0x4C = 0x4002104c

1 ответ

Это выглядит хорошо для меня, если предположить, то есть

RCC_BASE =    0x40021000
RCC_AHB2ENR = 0x4002104C
Другие вопросы по тегам