全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:9730
推到 Plurk!
推到 Facebook!

c++ builder如何做串列傳輸

 
quentin520
一般會員


發表:15
回覆:13
積分:5
註冊:2006-12-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-12-18 12:55:36 IP:59.114.xxx.xxx 未訂閱
c builder如何利用rs232與pc做串列傳輸有人可以告訴我嘛?有範例程式可以參考嘛/
CoffeeX
中階會員


發表:18
回覆:121
積分:72
註冊:2005-02-18

發送簡訊給我
#2 引用回覆 回覆 發表時間:2006-12-18 15:05:14 IP:140.125.xxx.xxx 訂閱
提供你幾個方案,
1.自己call win api,dos的function好像也可以,不過我沒試過,請其他大大提供吧
2.利用現有元件,搜尋Async Professional,
http://www.cppfans.com/ Victor串口控件,
Mscomm,
Sourceforge上也有一些小巧的lib:http://sourceforge.net/projects/comport/
3.書:C Builder與RS-232
------
=.=???
bluecity
一般會員


發表:0
回覆:3
積分:0
註冊:2005-03-23

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-01-11 15:13:48 IP:140.109.xxx.xxx 訂閱
以下是一個簡單的範例,可以在BCB中編譯:
這個程式用來開啟COM2 PORT,
傳送"f001000001"字元給連接在COM2上的設備,
及一個自定的結束字元"0x0D"告知此設備此次命令已結束.
// GLOBAL VARIABLES
HANDLE hComm = NULL;
COMMTIMEOUTS ctmoNew = {0}, ctmoOld;
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
DCB dcbCommPort;
// OPEN THE COMM PORT.
hComm = CreateFile("COM2",
GENERIC_READ | GENERIC_WRITE,
0,
0,
OPEN_EXISTING,
0,
0);
// IF THE PORT CANNOT BE OPENED, BAIL OUT.
if(hComm == INVALID_HANDLE_VALUE)
Application->Terminate();
// SET THE COMM TIMEOUTS.
GetCommTimeouts(hComm,&ctmoOld);
ctmoNew.ReadTotalTimeoutConstant = 100;
ctmoNew.ReadTotalTimeoutMultiplier = 0;
ctmoNew.WriteTotalTimeoutMultiplier = 0;
ctmoNew.WriteTotalTimeoutConstant = 0;
SetCommTimeouts(hComm, &ctmoNew);
// SET BAUD RATE, PARITY, WORD SIZE, AND STOP BITS.
// THERE ARE OTHER WAYS OF DOING SETTING THESE BUT THIS IS THE EASIEST.
// IF YOU WANT TO LATER ADD CODE FOR OTHER BAUD RATES, REMEMBER
// THAT THE ARGUMENT FOR BuildCommDCB MUST BE A POINTER TO A STRING.
// ALSO NOTE THAT BuildCommDCB() DEFAULTS TO NO HANDSHAKING.
dcbCommPort.DCBlength = sizeof(DCB);
GetCommState(hComm, &dcbCommPort);
BuildCommDCB("38400,N,8,1", &dcbCommPort);
SetCommState(hComm, &dcbCommPort);
//Send your command to COM2 PORT
TransmitCommChar(hComm, 'f');
TransmitCommChar(hComm, '0');
TransmitCommChar(hComm, '0');
TransmitCommChar(hComm, '1');
TransmitCommChar(hComm, '0');
TransmitCommChar(hComm, '0');
TransmitCommChar(hComm, '0');
TransmitCommChar(hComm, '0');
TransmitCommChar(hComm, '0');
TransmitCommChar(hComm, '1');
TransmitCommChar(hComm, 0x0D);

}
//---------------------------------------------------------------------------
系統時間:2024-04-27 0:27:25
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!