본문 바로가기
프로그래밍

ARM실습_GPIOx_IDR 레지스터를 이용한 스위치 입력

by BlueOcean&Shark 2016. 12. 11.

LED출력하는 실습은 다음을 참고하기바라며
http://munshark.tistory.com/97

이번에는 GPIOx_IDR 레지스터를 이용해 스위치입력을 받아
LED를 ON/OFF하는 실습니다.

------------------------------코딩-------------------------

#include "stm32f10x.h"

int main(void)
{   
   RCC->APB2ENR = 0x00000180;   // APB2 PORTF/PORTG 활성화
   // APB2ENR설정참고->http://munshark.tistory.com/100                
  
   GPIOF->CRL       = 0x30000000;
// 출력포트 설정
   GPIOG->CRL       =  0x08000000;   // 입력포트 설정
   // GPIOx_CRL설정참고 -> http://munshark.tistory.com/98
  
   GPIOG->ODR     = 0x40;         
// 입력을 받기위해 ODR설정
    
   while(1)
   {
     // GPIOG->IDR값이 0X04인지/아닌지(스위치ON/OFF)
    //
GPIOG->IDR 참고-> http://munshark.tistory.com/104
     if( (GPIOG->IDR & 0x40))  
     
     {

        GPIOF->ODR = 0x00000080;    //LED OFF  
     }
     else
     {
        GPIOF->ODR = 0x00000000;    //LED ON   
     }
   }
 }

댓글