串口通讯实验报告

串口通讯实验报告

ID:31738159

大小:92.19 KB

页数:7页

时间:2019-01-17

串口通讯实验报告_第1页
串口通讯实验报告_第2页
串口通讯实验报告_第3页
串口通讯实验报告_第4页
串口通讯实验报告_第5页
资源描述:

《串口通讯实验报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、网络编程与实践实验报告实验内容:串口通信编程学号:S201502189姓名:职荣豪口期:2015-9-28一、实验要求使用VS2010编写基于对话框的MFC应川程序,两个窗口分别使用两个串口,使得这两个窗口可以进行通信,包括数据的发送与接收。二、实验原理本实验使川MicrosoftCommunicationsControl控件,利用这个ActiveX控件,只需要编写少量代码即可轻松进行通信。该控件相关的函数如下:put_CommPort:设置串口号put_Settings:以字符串的形式设置波特率、奇偶校验位(n■无校验,e■偶校验,o■奇校验)、数据位数、停止位数putJnpu

2、tMode:设置接收数据的类型(0■文木类型,1•二进制类型)putJnputLen:设置从接收缓冲区读取的字节数,0表示全部读取putJnBufferSize:设置接收缓冲区大小put_OutBufferSize:设置发送缓冲区大小put_RThreshold:设定当接收几个字符时触发OnComm事件,0表示不产生事件,1表示每接收一个字符就产生一个事件put_SThreshold:设定在触发OnComm事件前,发送缓冲区内所允许的最少的字符数,0表示发送数据时不产生事件,1表示当发送缓冲区空时产生OnComm事件put_PortOpen:打开或关闭串口,传入参数为true时打

3、开串口,传入参数为false时关闭串口get_CommEvent:获得串口上刚发生的事件,事件值为2表示接收到数据getJnBufferCount:获得缓冲区中的数据位数getjnput:获収缓冲区数据,返回类型为VARIANTput_Output:发送数据三、设计思路需要添加一个MicrosoftCommunicationsControl控件,用于进彳亍串口通信。由于要求同一程序可运行两个窗口进行相互通信,需耍两个窗口开启两个不同串口,故需要添加一个EditControl控件用于输入串口号,并添加打开串口按钮,在点击该按钮时对串口控件的参数进行设査并开启串口。同时添加关闭串口按

4、钮,点击后关闭串口并可以对串口号进行修改。需要添加两个EditControl分别川于显示接收到的数据以及输入要发送的数据。需耍添加一个发送按钮,点击后发送输入的数据。1.建立基于对话框的MFC应用程序2.添加界面控件并设置ID与Caption添加MicrosoftCommunicationsControl控件,用于进行串口通信添加一个EditControl控件,用于输入串口号,ID设置为IDC_PORT添加一个StaticText控件,用于标注端口号,将Caption设置为“串口号:”添加两个按钮,分别用于打开串口、关闭串口。IDC分别设置为IDC_BTN_OPEN、IDC_BT

5、N_CLOSE,Caption分别设置为“打开”、“关闭”添加两个EditControl,分别用于显示接收到的数据以及输入要发送的数据,ID分别设置为IDCRECEIVE、IDCSENDMB添加两个StaticText控件,用于标注接收区与发送区,Caption分别设迸为“接收区”、“发送区”添加一个按钮用于发送数据,ID设置为IDC_盯N_SEND,Caption设置为“发送〃调整控件的大小与位置。完成后如图:1.给控件绑定变量右键单击MicrosoftCommunicationsControl控件,选择"添加变量”,变量名为m_com打开类向导给控件添加变量:给IDC_POR

6、T绑定变量,用于存放输入的端口号,数据类型为int,变最名为m_port给IDC_RECEIVE绑定变量,用于存放接收到的数据,数据类型为CString,变量名为m_strReceive给IDC_SEND绑定变量,用于存放输入的待发送的数据,数据类型为CString,变量名为m_strSend控件ID成员并U目定义变量〉HICONm_hlconJIDC_BTN_CLOSEJIDC_BTN_OPENJIDC-BTN.SENDQIDC_PORTintm_port0IDC_RECEIVECStringm^strReceiveQIDC.SENDCStringm_strSend1.给控件添

7、加事件响应函数右键单击MicrosoftCommunicationsControl控件,选择"添加事件处理程序”,点击"添加编辑〃,生成响应函数,此函数用于接收数据。在函数屮添加以下代码:UpdateData(TRUE);//更新m_strReceive的值intnEvent=m_com.get_CommEvent();//获取事件值if(nEvent==2){//时间值为2,此时为收到数据intk=m_com.get_InBufferCount();//茯取缓冲区位数if(k<

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。