資源簡介
有兩個程序,一個是win32控制程序,另一個是ARDUINO程序。下載下來后可以直接通信

代碼片段和文件信息
#include?
#include?
HANDLE?hCom;
int?main(void)
{
hCom?=?CreateFile(TEXT(“com6“)//COM1口
GENERIC_READ?|?GENERIC_WRITE?//允許讀寫
0?//指定共享屬性,由于串口不能共享,所以該參數(shù)必須為0
NULL
OPEN_EXISTING?//打開而不是創(chuàng)建
FILE_ATTRIBUTE_NORMAL?//屬性描述,該值為FILE_FLAG_OVERLAPPED,表示使用異步I/O,該參數(shù)為0,表示同步I/O操作
NULL);
if?(hCom?==?INVALID_HANDLE_VALUE)
{
printf(“打開COM失敗!\n“);
return?FALSE;
}
else
{
printf(“COM打開成功!\n“);
}
SetupComm(hCom?1024?1024);?//輸入緩沖區(qū)和輸出緩沖區(qū)的大小都是1024
?/*********************************超時設(shè)置**************************************/
COMMTIMEOUTS?TimeOuts;
//設(shè)定讀超時
TimeOuts.ReadIntervalTimeout?=1000?;//讀間隔超時MAXDWORD
TimeOuts.ReadTotalTimeoutMultiplier?=500;//讀時間系數(shù)
TimeOuts.ReadTotalTimeoutConstant?=5000;//讀時間常量
??//設(shè)定寫超時
TimeOuts.WriteTotalTimeoutMultiplier?=?500;//寫時間系數(shù)
TimeOuts.WriteTotalTimeoutConstant?=?2000;//寫時間常量
SetCommTimeouts(hCom?&TimeOuts);?//設(shè)置超時
?/*****************************************配置串口***************************/
DCB?dcb;
GetCommState(hCom?&dcb);
dcb.BaudRate?=?9600;?//波特率為9600
dcb.ByteSize?=?8;?//每個字節(jié)有8位
dcb.Parity?=?NOPARITY;?//無奇偶校驗位
dcb.StopBits?=?ONESTOPBIT;?//一個停止位
dcb.fParity?=?FALSE;
dcb.fNull?=?FALSE;
SetCommState(hCom?&dcb);
/********************************************
DWORD?wCount;//實際讀取的字節(jié)數(shù)
bool?bReadStat;
char?str[14]?=?{?0?};
/*******************************/
/**************************/
char?lpOutBuffer[]?=?{“123“};
DWORD?dwBytesWrite?=?sizeof(lpOutBuffer);
COMSTAT?ComStat;
DWORD?dwErrorFlags;
BOOL?bWriteStat;
/*************************/
PurgeComm(hCom?PURGE_TXCLEAR?|?PURGE_RXCLEAR);?//清空緩沖區(qū)
while?(1)
{
ClearCommError(hCom?&dwErrorFlags?&ComStat);
???
?bWriteStat?=?WriteFile(hCom?lpOutBuffer?dwBytesWrite?&dwBytesWrite?NULL);
??????????Sleep(1500);
//INT32?i;
//for?(i?=?0;?i?100000;?i++);
if?(!bWriteStat)?{?printf(“寫串口失敗!“);?}
else?printf(“we?are?family!\n“);
/********************************************
PurgeComm(hCom?PURGE_TXCLEAR?|?PURGE_RXCLEAR);?//清空緩沖區(qū)
bReadStat?=?ReadFile(hCom?str?sizeof(str)?&wCount?NULL);
if?(!bReadStat)
{
printf(“讀串口失敗!“);
return?FALSE;
}
else
{
//str[1]?=?‘\0‘;
int?i;
for(i=0;i<=13;i++)
printf(“%c\n“?str[i]);
}
/*************************************/
}
CloseHandle(hCom);
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
????..A..H.?????30720??2018-07-27?18:36??win32通信arduino\serial-test\.vs\seroal-test\v14\.suo
?????文件???????2667??2018-07-25?16:17??win32通信arduino\serial-test\seroal-test\main.cpp
?????文件???????7380??2018-07-24?21:39??win32通信arduino\serial-test\seroal-test\seroal-test.vcxproj
?????文件????????945??2018-07-24?21:39??win32通信arduino\serial-test\seroal-test\seroal-test.vcxproj.filters
?????文件???????4695??2018-07-24?20:55??win32通信arduino\serial-test\seroal-test\TEST.cpp
?????文件??????31011??2018-07-25?16:17??win32通信arduino\serial-test\seroal-test\x64\Debug\main.obj
?????文件????????955??2018-07-24?22:06??win32通信arduino\serial-test\seroal-test\x64\Debug\seroal-test.Build.CppClean.log
?????文件????????202??2018-07-25?16:17??win32通信arduino\serial-test\seroal-test\x64\Debug\seroal-test.log
?????文件????????638??2018-07-25?16:17??win32通信arduino\serial-test\seroal-test\x64\Debug\seroal-test.tlog\CL.command.1.tlog
?????文件??????20170??2018-07-25?16:17??win32通信arduino\serial-test\seroal-test\x64\Debug\seroal-test.tlog\CL.read.1.tlog
?????文件????????532??2018-07-25?16:17??win32通信arduino\serial-test\seroal-test\x64\Debug\seroal-test.tlog\CL.write.1.tlog
?????文件???????1260??2018-07-25?16:17??win32通信arduino\serial-test\seroal-test\x64\Debug\seroal-test.tlog\li
?????文件???????2652??2018-07-25?16:17??win32通信arduino\serial-test\seroal-test\x64\Debug\seroal-test.tlog\li
?????文件????????518??2018-07-25?16:17??win32通信arduino\serial-test\seroal-test\x64\Debug\seroal-test.tlog\li
?????文件????????200??2018-07-25?16:17??win32通信arduino\serial-test\seroal-test\x64\Debug\seroal-test.tlog\seroal-test.lastbuildstate
?????文件?????535552??2018-07-25?16:17??win32通信arduino\serial-test\seroal-test\x64\Debug\vc140.idb
?????文件?????176128??2018-07-25?16:17??win32通信arduino\serial-test\seroal-test\x64\Debug\vc140.pdb
?????文件???????1315??2018-07-24?16:16??win32通信arduino\serial-test\seroal-test.sln
?????文件???36810752??2018-07-27?18:36??win32通信arduino\serial-test\seroal-test.VC.db
?????文件??????60928??2018-07-25?16:17??win32通信arduino\serial-test\x64\Debug\seroal-test.exe
?????文件?????414944??2018-07-25?16:17??win32通信arduino\serial-test\x64\Debug\seroal-test.ilk
?????文件?????716800??2018-07-25?16:17??win32通信arduino\serial-test\x64\Debug\seroal-test.pdb
?????文件???????1185??2018-07-25?16:19??win32通信arduino\serialw_win32\serialw_win32.ino
?????目錄??????????0??2018-07-25?16:17??win32通信arduino\serial-test\seroal-test\x64\Debug\seroal-test.tlog
?????目錄??????????0??2018-07-24?16:16??win32通信arduino\serial-test\.vs\seroal-test\v14
?????目錄??????????0??2018-07-25?16:17??win32通信arduino\serial-test\seroal-test\x64\Debug
?????目錄??????????0??2018-07-24?16:16??win32通信arduino\serial-test\.vs\seroal-test
?????目錄??????????0??2018-07-24?16:20??win32通信arduino\serial-test\seroal-test\x64
?????目錄??????????0??2018-07-24?22:06??win32通信arduino\serial-test\x64\Debug
????...D.H.?????????0??2018-07-24?16:16??win32通信arduino\serial-test\.vs
............此處省略9個文件信息
評論
共有 條評論