GPIO 설정

 
 
------------------------------------------------------------------------------------
 
int main(void)
{
    uint8_t ch;
 
    /* System Clocks Configuration */
    RCC_Configuration();  //시스템 클럭을 살리고 주변 프리페럴럴 를 살린다.
 
    RCC_GetClocksFreq(&rcc_clocks); //현재 설정된 클럭을 rcc_clocks 스트럭쳐로 가져 온다.

    /* NVIC configuration */
    NVIC_Configuration();   //인터럽트 백터 테이블을 선언 한고, 우선순위 선언, 인터럽트 살리기 

    /* Configure the GPIO ports */
    GPIO_Configuration();   //기능에 따라 GPIO를 선언하고 동작 시킨다.
 
------------------------------------------------------------------------------------
 
 
 
GPIO_Configuration();   을 살펴보면 GPIO 의 특성을 설정하고 동작모드 설정한다.

 
 
------------------------------------------------------------------------------------
 
void GPIO_Configuration(void)
{
    GPIO_InitTypeDef GPIO_InitStructure;    //어떤 pin를 어떤 스피드로 어떤기능으로 할것인가?
 
    // UART configuration ...
    /* Configure USARTx_Tx as alternate function push-pull */
    GPIO_InitStructure.GPIO_Pin   = GPIO_USART_Tx_Pin;  //pin 사용 bit 를 선언 한다.
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;   //output mode에서  max speed 선언
    GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_AF_PP;    //pin 이 어떤 상태로 동작하는지선언,
    GPIO_Init(GPIO_USART, &GPIO_InitStructure);         //GPIO_USART = GPIOA
 
    /* Configure USARTx_Rx as input floating */
    GPIO_InitStructure.GPIO_Pin  = GPIO_USART_Rx_Pin;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
    GPIO_Init(GPIO_USART, &GPIO_InitStructure);
 
 
 
------------------------------------------------------------------------------------
 
 
 
몇가지 선언된것을 찾아보면 아래와 같다.

 
 
typedef enum
{
  GPIO_Speed_10MHz = 1, //output mode, max speed 10Mhz
  GPIO_Speed_2MHz,      //output mode, max speed 2Mhz
  GPIO_Speed_50MHz      //output mode, max speed 50Mhz
}GPIOSpeed_TypeDef;

 
typedef enum
{ GPIO_Mode_AIN = 0x0,              //Analog input
  GPIO_Mode_IN_FLOATING = 0x04,     //Floating input (reset 후 최초 상태 )
  GPIO_Mode_IPD = 0x28,             //input pull-down mode
  GPIO_Mode_IPU = 0x48,             //input pull-up mode
  GPIO_Mode_Out_OD = 0x14,          //general output open drain mode
  GPIO_Mode_Out_PP = 0x10,          //general output push-pull mode
  GPIO_Mode_AF_OD = 0x1C,           //alternate function output open-drain
  GPIO_Mode_AF_PP = 0x18            //alternate function output open-drain
}GPIOMode_TypeDef;

 
 

 

'공부 > STM32' 카테고리의 다른 글

STM32/STM32 시리얼 또는 USB 다운로드 지원 툴  (0) 2012.11.13
[STM32] Source 보기 7  (0) 2012.11.09
[STM32] Source 보기 5  (0) 2012.11.09
[STM32] Source 보기 4  (0) 2012.11.09
[STM32] Source 보기 3  (0) 2012.11.09

+ Recent posts