关键词:通信
● sio-SetReadTimeoutsportTotalTimeouts(Inter-valTimeouts);
在设定的等待时间内连续读串口输入缓冲区,TotalTimeouts代表设定的等待时间,IntervalTimeouts代表每次读出的间隔时间。
● sio-flush(portfunc);
用于清空缓冲区。当func为0时清空输入缓冲区,为1时清空输出缓冲区,为2时清空输入输出缓冲区。
● sio-putch(portterm);
用于向串口缓冲区发送一个字符,返回值为0时表示发送正确,否则表示发送错误。
● sio-write(portbuflen);
用于从串口缓冲区发送一串字符,buf代表字符串数组,len代表数组长度。
3.2 实现过程
在用Pcomm处理PC机的串口通信时,其实现过程如下:
(1)启动VC++ 6.0,新建一个基于对话框的应用程序TxRx。同时增加静态文本、编辑框和按钮控件,并为它们添加相应的变量。其属性见表1。
表1 TxRx应用程序的属性
| 控 件 | ID | 变量名 | 类 型 |
| 按 钮 | IDC_TRSMITT | 发送按钮 | |
| Edit | IDC_TXDATA | M_TxData | Cstring |
| Edit | IDC_RXDATA | M_RxData | Cstring |
(2) 将Pcomm.h和Pcomm.lib加入到工程中,并在TxRxDlg.cpp文件中加入#include “Pcomm.h”头文件,此后便可调用其提供的通信命令集。
(3)在TxRxDlg.cpp文件中添加有关程序代码,也就是在OnInitiDialog函数中的TODO语句后加入以下代码:
//TODO Add extra initialization here
int retport=1
ret=sio openport //打开串口1
sio DTRport0 //置DTR为低电平
sio ioctlportB19200P NONE|BIT 8| STOP 1 //设置波特率为19200,8位数据位,
1位停止位,无校验位。