본문 바로가기

Electron/CodeVision

CodeVision Code Generater 에 USART2,3 문제

사용자 삽입 이미지
사용자 삽입 이미지

이것 때문에 몇일동안 완전 삽질 했습니다..
증상은 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-