RS232通信之C++实现---PC端
通常设备与计算机连接的最简单的端口就是RS-232串行通信端口。由于实际操作简单,而且价格便宜,是工控方面实时控制通信中较常用的一种通信方式。因此串行通信端口RS232在系统控制范畴中占据着极其重要的地位。 通信的物理实现 当数据由设备A发送到设备B之前,会先被送到A设备的数据输出缓冲区,接着再由此缓冲区将数据由RS-232线路发送到B设备,同样地当数据由线路发送到
通常设备与计算机连接的最简单的端口就是RS-232串行通信端口。由于实际操作简单,而且价格便宜,是工控方面实时控制通信中较常用的一种通信方式。因此串行通信端口RS232在系统控制范畴中占据着极其重要的地位。
通信的物理实现
当数据由设备A发送到设备B之前,会先被送到A设备的数据输出缓冲区,接着再由此缓冲区将数据由RS-232线路发送到B设备,同样地当数据由线路发送到B设备时,数据先送到B设备的接收缓冲区,而B设备的处理器再到缓冲区将数据读出用以作相应的处理。
实现流程
代码实现通信步骤:
1:设置通信端口号码,由COM1开始往上递增。
2:使用createfile开启通信端口
3:设置RS232通信协议
4:设置传出速度等参数
5:设置其他需要的参数
6:读入或写出数据。使用readfile或writefile
7:使用完毕,以closehandle关闭通信端口。
用到部分I函数作用说明:
(1)用CreateFile打开通信端口
CreateFile(ComNo, //打开的端口
GENERIC_READ/GENERIC_WRITE, //存取模式为(读/写)
0, //端口是否共享, 0为不共享
NULL, //表示返回的句柄值不可被继承
OPEN_EXISTING, //打开时此参数被设为此值
FILE_FLAG_OVERLAPPED, //采用OVERLAPPED动作可
于背景完成再通知主程//序
0, //使用串口通信该项设为零。
)
(2)设置通信参数
读入:
GetCommState(hComm, //打开通信端口时返回的句柄
&dcb//串口状态结构控制块
)
写回:
SetCommState(hComm, //打开通信端口时返回的
句柄
&dcb//串口状态结构控制块
)
(3)设置Mask参数
SeMt ask(hComm,
EvWait//所要检测的事件
)
(4)WaitFvorSingleObject(handle, duMillisecond)来等待Event被设为触发态或者超时
(5)ResetEvent(hEvent)将Event设为非触发态
专注于最新测试仪器仪表(测试机)研发、生产、销售.
应用领域:线材测试、安规测试(高压测试)、变压器测试(LCR Meter)、PCB低阻测试、电源系统测试。
淘宝小店:http://shop72422917.taobao.com
有意者QQ:148208292
更多推荐
所有评论(0)