通常设备与计算机连接的最简单的端口就是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


Logo

助力广东及东莞地区开发者,代码托管、在线学习与竞赛、技术交流与分享、资源共享、职业发展,成为松山湖开发者首选的工作与学习平台

更多推荐