C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[48749] Re:Re:UART 통신 관련 질문입니다 고수님들 도움 좀 주세요~ ㅡㅡ
금목암 [iconms1] 1515 읽음    2007-04-04 13:21
라스코니 님이 쓰신 글 :
: 어떤 MCU를 쓰시는 지는 모르겠지만 다 동일하리라 봅니다.
:
: MCU는 자신의 시리얼 port 에 들어오는 데이터를 인터럽트로 받아들이게 됩니다. PC 라면 주로 RS232를 사용하게 될테니 MAX232(오래되서 가물가물하네요) 같은 칩이 신호를 변환해서 MCU의 시리얼 port 로 넣어주도록 되어 있을 겁니다.
:
: 시리얼 포트에 들어오는 것은 그때마다 인터럽트가 발생하게 되고 그 인터럽트를 처리할 함수가 시리얼 포트에 들어온 8 비트 데이터를 가지게 됩니다.  이 값은 ASCII 값이고 이 값으로 해당 문자열로 비교하면 되죠.
:
: MCU 가 들어온 값을 's' 으로 판단하면 알맞는 데이터를 시리얼 포트를 통해 내보내 주면 됩니다. 그 데이터를 PC에서 받아서 뿌려주면 되죠(이건 C++ Builder로).
:
: 현재 MCU의 스타트업 코드가 되어있고, 현재 main() 함수가 MCU에서 실행가능하면 나머지는 진짜 간단해요.
:
: 이전에 80196 을 가지고 ctasking 을 사용해서 한 적이 있는데 소스는 공개할 수 없고(^^;),,, 하지만 아마 인터넷에 검색하시면 많이 나올 겁니다. 단 대략적인 방법은 위와 같아요.

일단 MCU가 뭔지 모르겠지만 8051 이라고 치면
보레이트 타이머값 설정
시리얼 인터럽트를 허가
타이머 인터럽트 지정
초기화부분
    SP=0x74;
    P3=0x07; //bf;
    P0=0xff;
    P1=0xff;
    EA=0;
    SCON=0x50;
    PCON=0x80; // 19200
    TMOD|=0x22; //0x20;
    PS=1;
    TH1=TL1=0xFA; // 19200
    TH0=0x48;;        
    TR1=1;
    ET0=1; // ADD
    TF0=1; // AA
    TR0=1;
    EX0=1;
    IT0=1;
    EA=1;
static void interrupt_4_trx0(void) interrupt 4 /* 0023H : Serial_0 */
{
    unsigned    char    c;
    if(RI)
    {    RI = 0;
        c = SBUF;
        P1=c;
        if (c==0x30) //   
    }
    if(TI)
    {    TI = 0;
    SBUF=0x31;

    }
}
요런식으로 하시면 되겠네요 다른 프로세서도 거의 비슷합니다

+ -

관련 글 리스트
48729 UART 통신 관련 질문입니다 고수님들 도움 좀 주세요~ ㅡㅡ floor32 1385 2007/04/03
48733     Re:UART 통신 관련 질문입니다 고수님들 도움 좀 주세요~ ㅡㅡ 라스코니 1258 2007/04/03
48749         Re:Re:UART 통신 관련 질문입니다 고수님들 도움 좀 주세요~ ㅡㅡ 금목암 1515 2007/04/04
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.