资源简介
两个例程
例程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\li
文件 6230 2017-08-11 00:15 摄像头识小球串口发送数据\test\Debug\test.tlog\li
文件 368 2017-08-11 00:15 摄像头识小球串口发送数据\test\Debug\test.tlog\li
文件 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\li
文件 6498 2017-08-10 23:54 摄像头识小球串口发送数据\test\Release\test.tlog\li
文件 290 2017-08-10 23:54 摄像头识小球串口发送数据\test\Release\test.tlog\li
文件 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个文件信息
相关资源
- VSwin32命令控制台与单片机串口数据传
- vs2015的运行库
- Acunetix 11 内含破解文件
- opencv4.1+contrib vs2017编译 64位版
- Win7下通过VS2015编译好的最新OpenSSL-1
- Win7下通过VS2015编译好的OpenSSL所有共八
- STM32 F407 虚拟串口原子开发板可用
- 基于Modbus通信协议的串口通信程序
- vax2019最新版-带破解.7z
- SecureCRT 7.3.6英文版 32位/64位版 注册码
- vs2015安装番茄VX助手
- STM32 USB VCP Driver V1.3 32&64
- vsphere官方文档(全)
- vs2017+OpenCV3.43中值滤波函数使用例程
- opencv3.4.1 32位 Debug版本 x86VS2017编译
- stc15单片机串口和模拟spi控制adf4360-
- USB转虚拟串口
- DirectX版俄罗斯方块(vs2010代码.
- Visual Assist x162845
- 我个人的log4cplus-1.2.2的编译与测试使
- VS2013+OSG 下编译好的ffmpeg插件
- STM32L073实现DMA方式获取ADC多通道值,
- VMWare vSphere 6.5 ESXi 和 vCenter Server 产品
- STM32 USB转串口驱动 Virtual COM Port Driv
- 单片机串口协议程序+电机驱动程序
- qt-4.8.4-x64-msvc2010.zip
- 上位机、串口调试助手
- Qt5.9.2+VS2017入门——透彻解析对应代码
- WINCC OA中文手册
- VS2013+OpenCV3.4.1+OpenCVContrib(x64)编译好
评论
共有 条评论