|
시리얼 통신을 하시는데 굳이 로우레벨로 하실게 아니라면 컴포넌트를 찾아보시기 바랍니다.
2의 보수를 취하시거나 원하시는 비트만 취하시는 건 bit 연산자를 사용하시는 편이 좋을 듯 합니다.
16진수 변환은 관련 함수를 찾아보시면 될 듯 합니다만, 왜 16진수변환을 하는지 잘 이해가 안되네요.
도움되시길 바라겠습니다.
김종영 님이 쓰신 글 :
: 씨빌더를 시작한지 얼마 안되는데여...
: 232C 시리얼 통신 하는 프로그램을 짜려다보니...문제가 있어서 고수님들의
: 도움을 받고싶어 글을 남깁니다.....ㅡ.ㅡ;;;
:
: void __fastcall TForm1::Button1Click(TObject *Sender)
: {
: char str[13];
: char str2[13];
: int i;
: short int iB;
: short int iC;
: str[0]=(char)0x02;
: str[1]='0';
: str[2]='n';
: str[3]='0';
: str[4]='0';
: str[5]='0';
: str[6]='0';
: str[7]='0';
: str[8]='0';
: str[9]='0';
: str[10]='0';
: str[11]='0';
: str[12]='0';
:
: iB=0;
: for(i=1 ; i<13 ; i++)
: {
: iB +=(short int)str[i];
: }
: Edit1->Text=iB;
: iC= ~iB +1;
: 이후 프로그램이 난해합니다....ㅡ.ㅡ;;;
:
:
: 시리얼 통신 하는데 위의 str의 데이터를 2의 보수를 취해서
: 16진수로 변환하여 뒤의 8비트만 str2 에 저장하여 str2값만
: 전송하려 합니다.
: 2의 보수를 취하는것까진 된거 같은데 그 다음이 난해합니다.
: 어찌 처리해야할지를....ㅡ.ㅡ;;;
: 부디 도움 부탁 드리겠습니다...
: 수거하세여...^^
|