win32 串列埠 通訊 非同步 執行緒方式

2021-08-20 12:42:23 字數 2091 閱讀 4014

該例子是:《visual c++實踐與提高-串列埠通訊與工程應用篇_第2版》書上給出的部分原始碼,

整理修改之後的演示**:

借助 tc35模組可以,正常執行:

**如下:

// seritaltk.cpp : 定義控制台應用程式的入口點。

//#include "stdafx.h"

#include

handle hcom;

dword threadprocwrite(lpvoid pparam);

dword threadprocread(lpvoid pparam);

handle hthreadwrite;

handle hthreadread ;

hwnd hwnd;

dword threadprocread(lpvoid pparam)

bresult = readfile(hcom, //串列埠控制代碼

&mybyte, //存放讀取資料

9, //要讀取的位元組數

null,

&rol) ; //指向建立hcom時的rol的指標

if(bresult)

dwret =getlasterror() ;

if(!bresult &&(dwret == error_io_pending))

else

break;

case wait_timeout:

//讀操作失敗,原因是超時

printf("讀操作失敗,原因是超時\r\n");

break;

default:

//這裡加入預設處理**

break;}}

closehandle(rol.hevent);

return0;}

dword threadprocwrite(lpvoid pparam)

bresult = writefile (hcom, //串列埠控制代碼

&mybyte, //存放待傳送資料

4, //欲傳送的位元組數

null,

&wol) ; //指向建立hcom時的wol的指標

if(bresult)

if(!bresult)

else

break;

case wait_timeout:

//讀操作失敗,原因是超時

break;

default:

//這裡加入預設處理**

break;}}

closehandle(wol.hevent);

return0;}

int _tmain(int argc, _tchar* argv)

else

dword dwreadthreadid;

dword dwreadparam;

hthreadread = createthread(null,

0,(lpthread_start_routine)threadprocread,

&dwreadparam,

0,&dwreadthreadid

);if(hthreadread == null)

dword dwwritethreadid;

dword dwwriteparam;

hthreadwrite = createthread(null,

0,(lpthread_start_routine)threadprocwrite,

&dwwriteparam,

0,&dwwritethreadid

);if(hthreadwrite == null)

while(1)

closehandle(hcom);

return

0;}

執行結果:

send success dwwrite = 4

success read out dwread = 9,at

ok

bus bound 監控:

需要進一步的改善。

20180606

Win32串列埠程式設計

win32串列埠程式設計 金貝貝 一 基本知識 win32下串列埠通訊與16位串列埠通訊有很大的區別。在win32下,可以使用兩種程式設計方式實現串列埠通訊,其一是呼叫的windows的api函式,其二是使用activex控制項。使用api 呼叫,可以清楚地掌握串列埠通訊的機制,熟悉各種配置和自由靈...

WIN32串列埠程式設計詳解 二

4.2 同步方式讀寫串列埠 下面先例舉同步方式讀寫串列埠的 同步讀串列埠 char str 100 dword wcount 讀取的位元組數 bool breadstat breadstat readfile hcom,str,100,wcount,null if breadstat return ...

WIN32串列埠程式設計詳解 二

4.2 同步方式讀寫串列埠 下面先例舉同步方式讀寫串列埠的 同步讀串列埠 char str 100 dword wcount 讀取的位元組數 bool breadstat breadstat readfile hcom,str,100,wcount,null if breadstat return ...