이것 때문에 몇일동안 완전 삽질 했습니다..
증상은 USART2에 RFID 리더를 붙였는데...
RFID 14443A에 관한 쿼리인 04 00 60 FF 를 날려 줬는데...
5바이트가 날아오긴 하는데 그 값이 항상 00 이라는게 문제가 있었습니다.
카드 값인 06 UID(4바이트) FF 가 날아오던가...
최소한 에러이면 05 AA BB CC FF 가 날아와야 하는데....
이것때문에 RFID 모듈 제작사에 전화로도 문의하고 했지만..
해결 못하고 완전 삽질만 하다가...
우연히..USART1 으로 입력을 받으면서..
USART2 입력을 테스트 하니까...USART2 에 00 이 아닌 값이..
날아와서...GETCHAR 부분을 참고해 보니까....
USART1의 값을 긁어 오네요...ㅡ,ㅡ
USART3 역시 USART1의 값을 긁어 오는 버그가 있네요~
CodeVision에 Code Generater 에 버그 같습니다.
// Get a character from the USART2 Receiver buffer
#pragma used+
char getchar2(void)
{
char data;
while (rx_counter2==0);
data=rx_buffer2[rx_rd_index2];
if (++rx_rd_index2 == RX_BUFFER_SIZE2) rx_rd_index2=0;
#asm("cli")
--rx_counter2;
#asm("sei")
return data;
}
#pragma used-