#define RCC_BPB2ENR (*(volatile unsigned int*)0x40021018) #define GPIOB_ODR (*(volatile unsigned *)0x40010C0C) #define GPIOB_CRL (*(volatile unsigned *)0x40010C00) int main() { int i=0; //클럭인가 RCC_BPB2ENR &= 0xfffffff0; //변경하려는 비트만 0으로 초기화 RCC_BPB2ENR |= 0x00000008; //portB 클럭인가 //인아웃모드설정 GPIOB_CRL &= 0xff0fffff; //변경하려는 비트만 0으로 초기화 GPIOB_CRL |= 0x00100000; //PB5 pushpull // outputmode max speed..
우선 각종 기능들을 사용하고 싶으면 기본적으로 클럭인가를 시켜줘야 사용이 가능합니다.밑에 그림을 보면 APB2, APB1으로 접근하기 전에 RCC클럭인가를 해줘야 사용이 가능 하다는것을 알 수 있습니다 ARM은 주소값으로 접근해서 레지스터값을 바꾸는 방식을 사용합니다앞으로 많이 보게 될 주요 레지스터 주소값입니다. 클럭 인가를 시켜주는 레지스터는RCC_APB2ENR입니다. 저희가 ON시켜주려는 LED는 PB5이므로 PORTB에 클럭을 ENABLE시켜 줍니다 클럭을 ENABLE시켜주고 다음으로 GPIO관련 레지스터 설정을 해보도록 하겠습니다. GPIO관련 레지스터들 입니다. #define RCC_BPB2ENR (*(volatile unsigned int*)0x40021018) #define GPIOB_OD..
우선 프로그램 다운로드시 주의할점!!! 우선 회로도는 다음과 같습니다. 회로도에서 boot1은 항상 0이기 때문에 boot0에 따라서 mainflashmemory 모드와 system memory모드로 나뉘게 됩니다.간단히 정리하면다운로드시에는 system memory 모드(GPI 1,2연결해제)사용할시에는 main flash memory 모드로 사용하시면 됩니다(GPI 1,2연결)*상태변경시 리셋버튼을 눌러줘야 적용이 됩니다.