• 大小: 16.22MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-07-08
  • 语言: 其他
  • 标签: VS  串口  

资源简介

两个例程 例程1:摄像头识别小圆,然后通过串口输出小圆的xy坐标。单片机可以直接接受,具体串口配置自己配置。 例程2:VSwin32命令控制台程序 调用串口,可以根据自己需要配置串口,完成windows与单片机的数据传输。可作为开发参考使用。

资源截图

代码片段和文件信息

#include   
#include   
#include   
#include 



using namespace std;
HANDLE hComm;
OVERLAPPED OverLapped;
COMSTAT Comstat;
DWORD dwCommEvents;


bool OpenPort();  //打开串口  
bool SetupDCB(int rate_arg);  //设置DCB  
bool SetupTimeout(DWORD ReadInterval DWORD ReadTotalMultiplier DWORD
ReadTotalConstant DWORD WriteTotalMultiplier DWORD WriteTotalConstant);   //设置超时  
void ReciveChar();   //接收字符  
bool WriteChar(char* szWriteBuffer DWORD dwSend);  //发送字符  

bool OpenPort()
{
hComm = CreateFile(L“COM8“//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!此处更改com口!!!!!!!!!!!!!!!
GENERIC_READ | GENERIC_WRITE
0
0
OPEN_EXISTING
FILE_FLAG_OVERLAPPED
0);
if (hComm == INVALID_HANDLE_VALUE)
return FALSE;
else
return true;
}

bool SetupDCB(int rate_arg)
{
DCB dcb;
memset(&dcb 0 sizeof(dcb));
if (!GetCommState(hComm &dcb))//获取当前DCB配置  
{
return FALSE;
}
dcb.DCBlength = sizeof(dcb);
/* ---------- Serial Port Config ------- */
dcb.BaudRate = rate_arg;
dcb.Parity = NOPARITY;
dcb.fParity = 0;
dcb.StopBits = ONESTOPBIT;
dcb.ByteSize = 8;
dcb.fOutxCtsFlow = 0;
dcb.fOutxDsrFlow = 0;
dcb.fDtrControl = DTR_CONTROL_DISABLE;
dcb.fDsrSensitivity = 0;
dcb.fRtsControl = RTS_CONTROL_DISABLE;
dcb.fOutX = 0;
dcb.fInX = 0;
dcb.fErrorChar = 0;
dcb.fBinary = 1;
dcb.fNull = 0;
dcb.fAbortonerror = 0;
dcb.wReserved = 0;
dcb.XonLim = 2;
dcb.XoffLim = 4;
dcb.XonChar = 0x13;
dcb.XoffChar = 0x19;
dcb.EvtChar = 0;
if (!SetCommState(hComm &dcb))
{
return false;
}
else
return true;
}

bool SetupTimeout(DWORD ReadInterval DWORD ReadTotalMultiplier DWORD
ReadTotalConstant DWORD WriteTotalMultiplier DWORD WriteTotalConstant)
{
COMMTIMEOUTS timeouts;
timeouts.ReadIntervalTimeout = ReadInterval;
timeouts.ReadTotalTimeoutConstant = ReadTotalConstant;
timeouts.ReadTotalTimeoutMultiplier = ReadTotalMultiplier;
timeouts.WriteTotalTimeoutConstant = WriteTotalConstant;
timeouts.WriteTotalTimeoutMultiplier = WriteTotalMultiplier;
if (!SetCommTimeouts(hComm &timeouts))
{
return false;
}
else
return true;
}

void ReciveChar()
{
bool bRead = TRUE;
bool bResult = TRUE;
DWORD dwError = 0;
DWORD BytesRead = 0;
char RXBuff;
for (;;)
{
bResult = ClearCommError(hComm &dwError &Comstat);
if (Comstat.cbInQue == 0)
continue;
if (bRead)
{
bResult = ReadFile(hComm  //通信设备(此处为串口)句柄,由CreateFile()返回值得到  
&RXBuff  //指向接收缓冲区  
1  //指明要从串口中读取的字节数  
&BytesRead   //  
&OverLapped);  //OVERLAPPED结构  
std::cout << RXBuff << std::endl;
if (!bResult)
{
switch (dwError == GetLastError())
{
case ERROR_IO_PENDING:
bRead = FALSE;
break;
default:
break;
}
}
}
else
{
bRead = TRUE;
}
}
if (!bRead)
{
bRead = TRUE;
bResult = GetOverlappedResult(hComm
&OverLapped
&BytesRead
TRUE)

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      89088  2017-08-11 00:15  摄像头识小球串口发送数据\Debug\test.exe

     文件     618704  2017-08-11 00:15  摄像头识小球串口发送数据\Debug\test.ilk

     文件    2026496  2017-08-11 00:15  摄像头识小球串口发送数据\Debug\test.pdb

     文件      19968  2017-08-10 23:53  摄像头识小球串口发送数据\Release\test.exe

     文件    1297408  2017-08-10 23:54  摄像头识小球串口发送数据\Release\test.pdb

     文件       3242  2017-08-11 00:15  摄像头识小球串口发送数据\test\Debug\test.log

     文件        596  2017-08-11 00:15  摄像头识小球串口发送数据\test\Debug\test.tlog\cl.command.1.tlog

     文件      25198  2017-08-11 00:15  摄像头识小球串口发送数据\test\Debug\test.tlog\CL.read.1.tlog

     文件        384  2017-08-11 00:15  摄像头识小球串口发送数据\test\Debug\test.tlog\CL.write.1.tlog

     文件       3054  2017-08-11 00:15  摄像头识小球串口发送数据\test\Debug\test.tlog\link.command.1.tlog

     文件       6230  2017-08-11 00:15  摄像头识小球串口发送数据\test\Debug\test.tlog\link.read.1.tlog

     文件        368  2017-08-11 00:15  摄像头识小球串口发送数据\test\Debug\test.tlog\link.write.1.tlog

     文件        162  2017-08-11 00:15  摄像头识小球串口发送数据\test\Debug\test.tlog\test.lastbuildstate

     文件    1035264  2017-08-11 00:15  摄像头识小球串口发送数据\test\Debug\vc120.idb

     文件    1462272  2017-08-11 00:15  摄像头识小球串口发送数据\test\Debug\vc120.pdb

     文件     316854  2017-08-11 00:15  摄像头识小球串口发送数据\test\Debug\源.obj

     文件        393  2017-08-11 00:04  摄像头识小球串口发送数据\test\Release\test.log

     文件        616  2017-08-10 23:53  摄像头识小球串口发送数据\test\Release\test.tlog\cl.command.1.tlog

     文件      25144  2017-08-10 23:53  摄像头识小球串口发送数据\test\Release\test.tlog\CL.read.1.tlog

     文件        290  2017-08-10 23:53  摄像头识小球串口发送数据\test\Release\test.tlog\CL.write.1.tlog

     文件       3146  2017-08-10 23:54  摄像头识小球串口发送数据\test\Release\test.tlog\link.command.1.tlog

     文件       6498  2017-08-10 23:54  摄像头识小球串口发送数据\test\Release\test.tlog\link.read.1.tlog

     文件        290  2017-08-10 23:54  摄像头识小球串口发送数据\test\Release\test.tlog\link.write.1.tlog

     文件        164  2017-08-11 00:04  摄像头识小球串口发送数据\test\Release\test.tlog\test.lastbuildstate

     文件    1200128  2017-08-10 23:53  摄像头识小球串口发送数据\test\Release\vc120.pdb

     文件    1406658  2017-08-10 23:53  摄像头识小球串口发送数据\test\Release\源.obj

     文件       4180  2017-08-11 00:04  摄像头识小球串口发送数据\test\test.vcxproj

     文件        944  2017-08-10 23:50  摄像头识小球串口发送数据\test\test.vcxproj.filters

     文件       6687  2017-08-11 00:15  摄像头识小球串口发送数据\test\源.cpp

     文件   38797312  2017-08-11 00:15  摄像头识小球串口发送数据\test.sdf

............此处省略39个文件信息

评论

共有 条评论