我正在使用 NUCLEO-L476RG 板。我正在尝试切换板上的 LED。我必须将寄存器值设置为 0x01 以启用端口 A 的时钟。
请帮我找到寄存器“ 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 -核/核-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