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 |