티스토리 뷰
전과 다르게 추가된 소스만 설명하도록 하겠습니다.
스위치를 추가해 보도록 하겠습니다.
스위치 관련 주소입니다
mode00으로 설정하고 CNF를 01(floatin input)으로 설정
floating input일 경우에는 회로가 끊어진 상태이면 1이고 ground와 연결되어 있으면 0입니다.
스위치 값을 읽을 수 잇는 레지스터 입니다
쓰는것은 불가능하고 읽는것만 가능합니다
#define RCC_APB2ENR (*(volatile unsigned int*)0x40021018)
#define GPIOB_BSRR (*(volatile unsigned *)0x40010C10)
#define GPIOB_CRL (*(volatile unsigned *)0x40010C00)
#define GPIOA_CRL (*(volatile unsigned *)0x40010800)
#define GPIOA_IDR (*(volatile unsigned *)0x40010808)
int main()
{
//LED클럭인가
RCC_APB2ENR &= 0xfffffff0; //변경하려는 비트만 0으로 초기화
RCC_APB2ENR |= 0x0000000C; //portB,A 클럭인가
//LED아웃모드설정
GPIOB_CRL &= 0xff0fffff; //변경하려는 비트만 0으로 초기화
GPIOB_CRL |= 0x00100000; //PB5 pushpull // outputmode max speed 10mhz
//스위치인설정
GPIOA_CRL &= 0xff0fffff; //변경하려는 비트만 0으로 초기화
GPIOA_CRL |= 0x00400000;
while(1)
{
if((0x00000020 & GPIOA_IDR) == 0x20)
{
GPIOB_BSRR |= 0x00000020; // 켬
}
else
{
GPIOB_BSRR |= 0x00200000; //변경하려는 비트만 0으로 초기화
}
}
}
버튼을 떼고있는 경우
버튼을 누른경우
'arm cortex-m3' 카테고리의 다른 글
stm32f103 타이머stm32 cortex-m3(STM32F103C8T6) 1초만들기 (0) | 2015.08.14 |
---|---|
stm32 cortex-m3(STM32F103C8T6)led를 깜박여보자(2)!!!!! (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 |