該例子是:《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 ...