ASCII 轉 10進制 問題!! |
答題得分者是:tobylin
|
gn01708002
一般會員 發表:2 回覆:0 積分:0 註冊:2010-07-08 發送簡訊給我 |
請問各位大大!!我從RS232 接收到資料,顯示出來是ASCII碼,請問怎麼把它轉成10進制??
以下是我的程式碼 感謝各位幫忙!! void __fastcall TForm1::Button1Click(TObject *Sender) { char *ComNo; DCB dcb; String Temp; //取得想要開啟的port Temp = "COM" IntToStr(RadioGroup1->ItemIndex 1); //轉換成指標形態 ComNo = Temp.c_str(); hComm = CreateFile(ComNo,GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, 0); if (hComm == INVALID_HANDLE_VALUE) //if COM 未開啟 { MessageBox(0, "開啟port error!!","Comm Error",MB_OK); return; } //will dcb address 傳入取得通訊參數 GetCommState(hComm,&dcb); //得知目前COM狀態 dcb.BaudRate = CBR_9600; //set BaudRate 9600; dcb.ByteSize = 8; dcb.Parity = NOPARITY; dcb.StopBits = ONESTOPBIT; if(!SetCommState(hComm, &dcb)) //set COM state { MessageBox(0, "port set error!!","set error",MB_OK); CloseHandle(hComm); return; } Timer1->Enabled = True; } //--------------------------------------------------------------------------- void __fastcall TForm1::Timer1Timer(TObject *Sender) { String Temp; char inbuff[1024]; DWORD nBytesRead, dwEvent, dwError; COMSTAT cs; //取得state ClearCommError(hComm,&dwError,&cs); // 資料是否大於buffer if(cs.cbInQue > sizeof(inbuff)) { PurgeComm(hComm, PURGE_RXCLEAR); //clear COM data return; } ReadFile(hComm, inbuff,cs.cbInQue,&nBytesRead,NULL);//接收COM data inbuff[cs.cbInQue] = '\0'; //轉移資料到變數中 Memo1->Text =Memo1->Text inbuff; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { if (hComm!=INVALID_HANDLE_VALUE) CloseHandle(hComm); exit(EXIT_SUCCESS); } |
tobylin
一般會員 發表:1 回覆:15 積分:18 註冊:2009-12-25 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |