c++ builder如何做串列傳輸 |
|
quentin520
一般會員 發表:15 回覆:13 積分:5 註冊:2006-12-18 發送簡訊給我 |
|
CoffeeX
中階會員 發表:18 回覆:121 積分:72 註冊:2005-02-18 發送簡訊給我 |
提供你幾個方案,
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 發送簡訊給我 |
以下是一個簡單的範例,可以在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); } //--------------------------------------------------------------------------- |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |