Visio studio 2015 使用串口
来源:互联网 发布:synapse2.0软件 编辑:程序博客网 时间:2024/06/14 15:36
串口通讯是诸多传感器、执行器与主机间常用的通讯方式,在linux系统下串口通讯c++编程非常简单。然而,对于一些采用在windows下编译的环境来说,串口通讯在VS下的使用相对来说资料较少,因此,今天介绍下VS2015下的串口通讯编程。
Windows下编程使用串口:这里使用VS2015编程。
其中串口相关的头文件如下:
/*"Serial_Vs.h"*/#include<iostream>#include<TCHAR.H> #include<windows.h>HANDLESerial_open(LPCWSTR,int);intSerial_read(HANDLE,void*,int);intSerial_write(HANDLE,constvoid*,int);voidSerial_close(HANDLE);voidclear_buf(unsignedchar*,int);/**open serial@param COMx: eg:_T("COM1")@param BaudRate:return 0 success ,return Negative is haed err*/HANDLESerial_open(LPCWSTRCOMx,intBaudRate){ HANDLEhCom; DCBdcb = { 0 }; hCom =CreateFile(COMx, GENERIC_READ|GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0,//FILE_FLAG_OVERLAPPED, //同步方式 或 重叠方式 0 ); if(hCom ==INVALID_HANDLE_VALUE) { DWORDdwError = GetLastError(); printf("Sorry, failed to open the serial\n"); //return -1; printf("The program will terminate in 3 seconds\n"); Sleep(3000); exit(0); } else printf("The serial is successfully opened in a Baudrate %d!\n",BaudRate); dcb.DCBlength =sizeof(DCB); if(!GetCommState(hCom, &dcb)) { DWORDdwError = GetLastError(); return(HANDLE)(-1); } dcb.BaudRate =BaudRate; //波特率 dcb.ByteSize = 8; //位数 dcb.Parity =NOPARITY; //奇偶检验 dcb.StopBits =ONESTOPBIT; //停止位数 if(!SetCommState(hCom, &dcb)) { DWORDdwError = GetLastError(); return(HANDLE)(-1); } if(!PurgeComm(hCom,PURGE_RXCLEAR)) return(HANDLE)(-1); SetupComm(hCom, 1024, 1024); returnhCom;;}/**serial read@param Buf:data buf@param size:@return The len of read*/intSerial_read(HANDLEhCom,void*OutBuf,intsize){ DWORDcnt = 0; ReadFile(hCom,OutBuf,size, &cnt, 0); returncnt;}/**serial write@param Buf:data buf@param size:bytes of Buf@return The len of writen*/intSerial_write(HANDLEhCom,constvoid*Buf,intsize){ DWORDdw; WriteFile(hCom,Buf,size, &dw,NULL); returndw;}/**serial close*/voidSerial_close(HANDLEhCom){ CloseHandle(hCom);}/**clear buf*/voidclear_buf(unsignedchar*buf,intN){ inti; for(i = 0; i <N; i++)buf[i] = 0; buf[i] ='\0';}
主函数如下
/*main.cpp*/HANDLEhCom;int main(){ //--open serial port as a default baudrate 9600 hCom = Serial_open(_T(Portname), 9600); //--Clear receive memory PurgeComm(hCom,PURGE_RXCLEAR); //--Close and reopen the port Serial_close(hCom);}
转载请注明:
http://write.blog.csdn.net/postedit/51065789
Powered by Xiaoliang Wang
wangxiaoliang1992@gmail.com
Beijing Institute of Technology-The University of British Columbia
China
0 0
- Visio studio 2015 使用串口
- visio studio
- Visio studio 2015 系统找不到文件夹问题
- visio studio code 简介
- Visio studio 基本控件
- 【VISIO】visio画图使用技巧
- Android Studio : 使用 jni 实现串口通讯
- Visio使用技巧
- visio使用技巧
- visio使用小技巧
- 如何使用visio
- visio使用小技巧
- Visio 使用心得
- visio 使用技巧汇总
- 使用Visio画流程图
- VISIO使用日志
- visio大括号使用
- Visio使用技巧
- 【ACM】Spring Outing
- [python之数据分析] 基础篇1- Numpy,Scipy,Matplotlib 快速入门攻略
- LeetCode 255. Verify Preorder Sequence in Binary Search Tree(检查二叉搜索树的前序遍历)
- [Python极速入门] Python 2.7极速入门讲义
- android RelativeLayout属性和使用, 实现上面view叠加在下面view之上的效果2
- Visio studio 2015 使用串口
- LeetCode 256. Paint House(房子涂色)
- 键盘推动视图上下移效果
- LeetCode 257. Binary Tree Paths
- scanf输入格式实验&printf语句输出实验
- IBM SPSS Modeler 【1】 K均值聚类
- IBM SPSS Modeler 【2】 两步聚类
- IBM SPSS Modeler 【3】 Kohonen聚类分析和直接分析法
- IBM SPSS Modeler 【3】 神经网络的生成