stm32 cortex-m3(STM32F103C8T6)led를 깜박여보자(1)!!!!! 글에서는 GPIOB_ODR 레지스터를 사용해서 LED를 깜박여 보았는데요.GPIOB_ODR 레지스터를 사용해서 LED를 깜박이면 레지스터를 32개 모두 건들여 주기 때문에 비효율적일 수 있습니다. 그래서 GPIOB_BSRR 레지스터를 사용해서 깜박여보도록 하겠습니다. GPIOB_BSRR레지스터를 사용하면 비트 1개만 건들여서 LED를 제어할 수 있기 때문에 실행속도가 매우 빨라집니다 #define RCC_BPB2ENR (*(volatile unsigned int*)0x40021018) #define GPIOB_BSRR (*(volatile unsigned *)0x40010C10) #define GPIOB_CRL (*(..
#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..