티스토리 뷰
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 (*(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 10mhz
while(1)
{
for(i=0;i<1000000;i++)
{
GPIOB_BSRR |= 0x00200000; //변경하려는 비트만 0으로 초기화
}
for(i=0;i<1000000;i++)
{
GPIOB_BSRR |= 0x00000020; // pb5 Port output data
}
}
}
'arm cortex-m3' 카테고리의 다른 글
stm32f103 타이머stm32 cortex-m3(STM32F103C8T6) 1초만들기 (0) | 2015.08.14 |
---|---|
stm32 cortex-m3(STM32F103C8T6)led를 스위치에 따라서 제어해 보자 (0) | 2015.08.14 |
stm32 cortex-m3(STM32F103C8T6)led를 깜박여보자(1)!!!! (0) | 2015.08.14 |
stm32 cortex-m3(STM32F103C8T6)led를 켜보자!!! (0) | 2015.08.14 |
stm32에서 cortex-m3 led를 켜보자!!(프로그램 다운로드 방법,굽기방법) (0) | 2015.08.14 |