串口通信的控制及判断

本文介绍了如何使用C++进行串口通信的控制,包括通过CreateFile函数创建串口,设置DCB结构体调整串口参数,利用GetCommState和SetCommState函数获取和设置串口状态,并通过WriteFile发送数据。通过循环读取应答来判断设备的正确响应,从而实现串口通信的控制与判断。
摘要由CSDN通过智能技术生成

直接控制串口通信是怎样的呢 相当于有一个文件 你要向里面写入数据 这写入的数据 就是控制相应设备的命令格式 命令发出去了 会收到设备的应答 应答也在这个文件里 然后用循环读取应答 就是读文件中的数据 为什么用循环呢?先尝试读一个字节 能不能读到 这也是判断设备参数是否设置正确的初始步骤 然后通过对长度 内容的判断 就是串口通信的控制及判断啦
串口通信的控制步骤:
1.CreateFile函数:(这个函数的各参数值较多 仅针对本次设置)
HANDLE CreateFile(
LPCTSTR lpFileName, // file name 文件名 现在我要控制串口 假设是COM3
DWORD dwDesiredAccess, // access mode 访问模式 现在当然是写
DWORD dwShareMode, // share mode 不共享 为0
LPSECURITY_ATTRIBUTES lpSecurityAttributes, // SD 不需要继承返回句柄 为NULL
DWORD dwCreationDisposition, // how to create 串口通信 文件当然已经存在
DWORD dwFlagsAndAttributes, // file attributes 当前异步通信 设备都是半双工的
HANDLE hTemplateFile // handle to template file 异步通信这里就是NULL
);
在实际中 这样应用:
HINSTANCE hInst = (HINSTANCE)CreateFile("\COM3",GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_FLAG_OVERLAPPED,NULL);
函数返回值是一个句柄 对这个句柄 还是要判断是否成功:
if(hInst == INVALID_HANDLE_VALUE)
return -1;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值