用API操作串列埠

2022-08-25 18:42:30 字數 1976 閱讀 1269

步驟:

1、createfile,開啟串列埠

示例:g_hcom = createfile(l"com3",

generic_read| generic_write, 0,

null,  open_existing,

//必須用0,表示以獨佔的模式來占用串列埠

//開啟除檔案之外的裝置時,用 open_existing

2、setupcomm,用來設定快取大小

3、setcommtimeouts,設定讀寫的超時時間

4、setcommstate,用來設定一些串列埠引數,如波特

率,讀取的位元組數,是否奇偶檢驗。

5、writefile,向串列埠傳送資料

6、readfile,從串列埠讀資料

7、採用非同步的方式來獲取資料,如io完成埠

**:

#include #include #include #include using namespace std;

handle g_hcompletionport, g_hcom, g_hevent;

byte buff[1000];

byte writebuf = 0x1a;//這個資料是針對我這塊板子的

dword dwerr;

uint winapi writedata(pvoid pparameter)

else

return 0;

}uint winapi readdata(pvoid pparame)

cout << endl << endl;

} else

setevent(g_hevent);

return 0;

}void main()

// setcommmask(g_hcom, ev_rxchar | ev_txempty);

setupcomm(g_hcom, 1024, 512);

purgecomm(g_hcom, purge_rxabort | purge_rxclear | purge_txabort | purge_txclear);

commtimeouts commtimeout;

commtimeout.readintervaltimeout = 5;

commtimeout.readtotaltimeoutconstant = 1000;

commtimeout.readtotaltimeoutmultiplier = 5;

commtimeout.writetotaltimeoutconstant = 1000;

commtimeout.writetotaltimeoutmultiplier = 5;

setcommtimeouts(g_hcom, &commtimeout);

dcb dcb;

getcommstate(g_hcom, &dcb);

dcb.baudrate = 4800;

dcb.bytesize = 8;

dcb.parity = noparity;

dcb.stopbits = onestopbit;

dcb.fbinary = true;

dcb.fparity = false;

setcommstate(g_hcom, &dcb);

handle hthread[20];

hthread[0] = (handle)_beginthreadex(null, 0, writedata, null, 0, null);

for (int i = 1; i < 20; i++)

waitformultipleobjects(20, hthread, true, infinite);

closehandle(g_hcom);

closehandle(g_hcompletionport);

closehandle(g_hevent);

}

遇到的問題:

1、向串列埠寫資料的時候最好用位元組來寫。

VB 用API操作遊戲杆

暑假閒來無事,隨便找了個網上比較多人推薦的悠閒遊戲來玩了下 咕嚕小天使 正好該遊戲支援遊戲杆,於是我便萌生了做這個小小的軟體的想法,其中參考了kaper的一篇文章 個人心得 windows下對遊戲杆程式設計 未完 小弟第一次在高手如雲的csdn發帖,若有不正確之處,還望各位前輩大蝦們指正 首先介紹關...

串列埠通訊常用API

1 createfile 用途 關閉串列埠 原型 bool closehandle handle hobjedt 引數說明 hobjedt 串列埠控制代碼 操作說明 成功關閉串列埠時返回true,否則返回false 舉例 closehandle hcomm 3 getcommstate 用途 取得串...

用API閘道器把API管起來

最開始只是想找個api閘道器防止api被惡意請求,找了一圈發現基於nginx的openresty lua語言 擴充套件模組orange挺好 也找了kong,但是感覺複雜了點沒用 還偷懶用vagrant結合docker來快速搭建環境,基於別人的dockerfile把整個實驗跑通了,覺得還不錯。想著好像...