//GPIOA CLOCK, RCC
//RCC CONTROL REGISTER
//RCC AHB1 CLOCK ENABLE, GPIOA CLOCK ENABLE
//GPIO A5, OUTPUT, PUSH PUPP, NO PULL up/PULL DOWN, LOW SPEED
BASE ADDRESS + OFFSET
#define AHB1_BASE 0x40020000
#define RCC_BASE (AHB1_BASE + 0x3800)
#define RCC_CR ((volatile unsigned int *)(RCC_BASE+0x00))
#define RCC_AHB1ENR ((volatile unsigned int *)(RCC_BASE+0x30))
#define GPIOA_BASE (AHB1_BASE + 0x0000)
#define GPIOB_BASE (AHB1_BASE + 0x0400)
#define GPIOC_BASE (AHB1_BASE + 0x0800)
#define GPIOA ((GPIO_TypeDef *) GPIOA_BASE)
#define GPIOB ((GPIO_TypeDef *) GPIOB_BASE)
#define GPIOC ((GPIO_TypeDef *) GPIOC_BASE)
//#define GPIOA_MODER ((unsigned int *)(GPIOA_BASE+0x00))
//#define GPIOA_OTYPER ((unsigned int *)(GPIOA_BASE+0x04))
//#define GPIOA_OSPEEDR ((unsigned int *)(GPIOA_BASE+0x08))
//#define GPIOA_PUPDR ((unsigned int *)(GPIOA_BASE+0x0C))
//#define GPIOA_IDR ((unsigned int *)(GPIOA_BASE+0x10))
//#define GPIOA_ODR ((unsigned int *)(GPIOA_BASE+0x14))
//#define GPIOA_BSRR ((unsigned int *)(GPIOA_BASE+0x18))
//#define GPIOA_ICRR ((unsigned int *)(GPIOA_BASE+0x1C))
//#define GPIOA_AFRL ((unsigned int *)(GPIOA_BASE+0x20))
//#define GPIOA_AFRH ((unsigned int *)(GPIOA_BASE+0x24))
RCC : 0x4002 3800 + 0x00
*RCC_CR |= (1<<0); //0x40023800주소에 0번 bit를 1set
*RCC_CR &= ~(1<<16); //0x40023800주소에 16번 bit를 0set
//RCC AHB1 CLOCK ENABLE, GPIOA CLOCK ENABLE
RCC : 0x4002 3800 + 0x30
*RCC_AHB1ENR |= (1<<0); // GPIOA clock enable
*RCC_AHB1ENR |= (1<<2); // GPIOC clock enable
//GPIO A5, OUTPUT, PUSH PUPP, NO PULL up/PULL DOWN, LOW SPEED
GPIOA->MODER |= (1<<10);
GPIOA->OSPEEDR |= (1<<10) | (1<<11);
'공부방 > ARM_STM32WS 이규정교수님_필기' 카테고리의 다른 글
240405_UART, circular buffer (0) | 2024.04.05 |
---|---|
UART과제 문자열 확인 응답 (0) | 2024.04.05 |
(LowLevel)240404 ARM HARDWARE (0) | 2024.04.04 |
(새수업)240403_UART (1) | 2024.04.03 |
240402_ADC_가변저항 두개_UART SMT끼리 (0) | 2024.04.02 |