P213
참고. STM32_Reference_manual. p140의 table 17, 18
직접 만드는것도 연습이 되나, 되도록 있는 함수를 이용하도록한다. 새로 만든 함수와 기존 함수를 병행하면 헷갈리기 쉽기때문에 본래 있는 함수에 익숙하도록 하자.
P216의 GPIO_Port_Init의 대체함수로 GPIO_Configuration을 이용하자.
아래와 같다.
void GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = (GPIO_Pin_0+GPIO_Pin_1+GPIO_Pin_4);
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //output
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
}
위의 함수들은 본래 주어진다.
BitAction함수도 본래 주어진다.
GPIO_ReadInputDataBit도 주어진다.
GPIO_TypeDef->IDR
:_IO uint32_t IDR
:0~15번 비트까지 0번 핀에서 15번 핀까지의 입력 데이터의 값을 가지고 있다.
GPIO_Pin은 사용하는 핀에 대하여 1이 들어가 있고<핀정보> IDR에 이를 AND함으로써 데이터값이 1이 들어와 있는 핀에 대해서는 1을 반납한다. 물론 IDR에는 복수핀에 대한 데이터 정보로 되어있고 GPIO_Pin은 단일도 복수도 가능하다. 단일일 경우 해당핀만 조건을 만족하면 되고, 복수이면 여러핀이 조건을 만족해야 한다. Bit_RESET, SET은 각각 0,1이다. 32비트로 처리한다. 반납값 bitstatus는 8비트로 0,1표현
ex)
IDR : 0b1011110111110001
PIN : 0b1001001100101100
& : 0b1001000100100000
rese: 0b0000000000000000
테스트 파일. LED3개를 이용하여 깜빡임. 스위치 하나.
![](http://i1.daumcdn.net/icon/editor/p_zip_s.gif)
'중도연재종료 > CORTEX M3' 카테고리의 다른 글
UART_ Hello World 찍기_1 (0) | 2013.06.08 |
---|---|
GPIO_Init (0) | 2013.05.25 |
고급스러운 코딩1. (0) | 2013.05.24 |
LED 끄기[GPIO Set Reset 레지스터] (0) | 2013.05.24 |
LED회로도를 통한 기본적인 이해 (0) | 2013.05.22 |