====== GPIO 의 함정 ====== 계속 되풀이되는 GPIO 함정에 대해서 명확히 결론을 위해 작성되어졌다. 다른 문서에서도 언급했지만, 시스템이 초기화 되면서, GPIO -> UART -> TBX 의 순서로 초기화 된다. 하지만, POD 실험을 하면서 POD_READY 핀이 제대로 값을 읽지 못하고 있음을 알아냈다. 이 문제의 원인은 바로 UART 에 있다. 현재 5517 이 제공하는 4 개의 UART 포트 중에 2 개만 사용하고 있다. 하지만, 시스템 초기화 과정에서 4 개 모두를 초기화하기 때문에, 다른 목적으로 할당할 핀까지 UART 의 지배(?)하에 들어가게 된 것이다. 일단 UART 를 초기화 해주는 부분부터 보기로 한다. ST_ErrorCode_t UART_Setup(void) { ST_ErrorCode_t ST_ErrorCode = ST_NO_ERROR; U8 InitList[] = { MODEM_UART_DEV, SC1_UART_DEV, UART_END_OF_LIST }; // 바로 이부분이다. 총 4 개중에 다음의 2 개만 초기화 한다 U8 index; for ( index = 0; InitList[index] != UART_END_OF_LIST; index++ ) { ST_ErrorCode |= uart_init(InitList[index]); } return ( ST_ErrorCode ); } ---- {{indexmenu>:#1|skipns=/^(wiki|etc|diary|playground)$/ skipfile=/^(todays|about|guestbook)$/ nsort rsort}} ----