如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
网络编程与实践实验报告实验内容:串口通信编程学号:S201502189姓名:职荣豪日期:2015-9-28实验要求使用VS2010编写基于对话框得MFC应用程序,两个窗口分别使用两个串口,使得这两个窗口可以进行通信,包括数据得发送与接收。实验原理本实验使用MicrosoftmunicationsControl控件,利用这个ActiveX控件,只需要编写少量代码即可轻松进行通信。该控件相关得函数如下:put__mPort:设置串口号put_Settings:以字符串得形式设置波特率、奇偶校验位(n-无校验,e-偶校验,o-奇校验)、数据位数、停止位数put_InputMode:设置接收数据得类型(0-文本类型,1-二进制类型)put_InputLen:设置从接收缓冲区读取得字节数,0表示全部读取put_InBufferSize:设置接收缓冲区大小put_OutBufferSize:设置发送缓冲区大小put_RThreshold:设定当接收几个字符时触发Onm事件,0表示不产生事件,1表示每接收一个字符就产生一个事件put_SThreshold:设定在触发Onm事件前,发送缓冲区内所允许得最少得字符数,0表示发送数据时不产生事件,1表示当发送缓冲区空时产生Onm事件put_PortOpen:打开或关闭串口,传入参数为true时打开串口,传入参数为false时关闭串口get_mEvent:获得串口上刚发生得事件,事件值为2表示接收到数据get_InBufferCount:获得缓冲区中得数据位数get_Input:获取缓冲区数据,返回类型为VARIANTput_Output:发送数据设计思路需要添加一个MicrosoftmunicationsControl控件,用于进行串口通信。由于要求同一程序可运行两个窗口进行相互通信,需要两个窗口开启两个不同串口,故需要添加一个EditControl控件用于输入串口号,并添加打开串口按钮,在点击该按钮时对串口控件得参数进行设置并开启串口。同时添加关闭串口按钮,点击后关闭串口并可以对串口号进行修改。需要添加两个EditControl分别用于显示接收到得数据以及输入要发送得数据。需要添加一个发送按钮,点击后发送输入得数据。实验步骤建立基于对话框得MFC应用程序添加界面控件并设置ID与Caption添加MicrosoftmunicationsControl控件,用于进行串口通信添加一个EditControl控件,用于输入串口号,ID设置为IDC_PORT添加一个StaticText控件,用于标注端口号,将Caption设置为“串口号:”添加两个按钮,分别用于打开串口、关闭串口。IDC分别设置为IDC_BTN_OPEN、IDC_BTN_CLOSE,Caption分别设置为“打开”、“关闭”添加两个EditControl,分别用于显示接收到得数据以及输入要发送得数据,ID分别设置为IDC_RECEIVE、IDC_SEND添加两个StaticText控件,用于标注接收区与发送区,Caption分别设置为“接收区”、“发送区”添加一个按钮用于发送数据,ID设置为IDC_BTN_SEND,Caption设置为“发送”调整控件得大小与位置。完成后如图:给控件绑定变量右键单击MicrosoftmunicationsControl控件,选择“添加变量”,变量名为m_打开类向导给控件添加变量:给IDC_PORT绑定变量,用于存放输入得端口号,数据类型为int,变量名为m_port给IDC_RECEIVE绑定变量,用于存放接收到得数据,数据类型为CString,变量名为m_strReceive给IDC_SEND绑定变量,用于存放输入得待发送得数据,数据类型为CString,变量名为m_strSend给控件添加事件响应函数右键单击MicrosoftmunicationsControl控件,选择“添加事件处理程序”,点击“添加编辑”,生成响应函数,此函数用于接收数据。在函数中添加以下代码:UpdateData(TRUE);//更新m_strReceive得值intnEvent=m_、get_mEvent();//获取事件值if(nEvent==2){//时间值为2,此时为收到数据intk=m_、get_InBufferCount();//获取缓冲区位数if(k<=0)//位数小于等于0时则返回return;char*str=(char*)m_、get_Input()、parray->pvData;//获取接收到数据得字符数组得首地址*(str+k)='\