계속 되풀이되는 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 ); }