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
[68828] 시리얼통신 uart 문자열 수신문제
프로바라기 [sppc] 2914 읽음    2012-12-17 16:12
안녕하세요
cortex M3임베디드 보드로부터 float타입의 데이터를 수신받아 볼렌드로 구성된 UI에서 그래프로 보이게 하려 합니다.
한번에 수신되는 데이터는 STX신호로 사용한 ';'을 시작으로 해서 6개의 float데이터형을 받는것이 목표인데요

일반 에뮬레이터에서 수신하는 데이터는 ";0.00000 0.00000 0.00000 0.00000 0.00000 0.00000/"
이지만, 볼렌드에서 수신하는 데이터는(';'출력 안함)  "0.0000"뿐입니다. DebugPort->Read((void *)&rcv[0], Count); 에서의
배열 rcv에서부터 중간에 잘려버린  문자열값이 저장되는것 같습니다.
송신측 소스에서 1초딜레이를 주어 데이터 전송텀(1초)을 주어도 마찬가지 현상입니다.

한가지 이상한점은 볼렌드 실행창을 약간 조절하면 약 5턴(핸들러 호출)정도 전체 데이터를 볼 수 있고요



아래 수신하여 출력하는 소스와 스크린샷 캡쳐를 첨부합니다.


    memset(&rcv[0], 0, sizeof(rcv));
    DebugPort->Read((void *)&rcv[0], Count);
    for(i=0;i<10;i++)
    {
        if(rcv[i] == ';') break;
    }

    if(i<10)
    {
    i++;

    j=i;
    for(;j<100;j++)
    {
        if(rcv[j]=='/') break;
        Memo->SelText =  rcv[j];
    }
    i=0;
    j=0;


    if (start==true) {

    for(i=0;i<10;i++)
    {
        if(rcv[i] == ';') break;
    }

+ -

관련 글 리스트
68828 시리얼통신 uart 문자열 수신문제 프로바라기 2914 2012/12/17
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.