《atmega128单片机概述-2-微机串口技术-对话框.ppt》由会员分享,可在线阅读,更多相关《atmega128单片机概述-2-微机串口技术-对话框.ppt(5页珍藏版)》请在三一办公上搜索。
1、自动化学院,1,基于微软提供的组件进行串口通信对话框形式,北京航空航天大学xiajie2011年4月,自动化学院,2,对话框步骤,建立一个项目为对话框给项目增加组件通过“ClassWizard”将控件映射一个对应函数。需要初始化(在初始化对话框中实现)m_ctrlComm.SetCommPort(1);/选择COM1m_ctrlComm.SetInputMode(1);/输入方式为二进制方式m_ctrlComm.SetInBufferSize(1024);/设置输入缓冲区大小m_ctrlComm.SetOutBufferSize(512);/设置输出缓冲区大小/波特率9600,无校验,8个数据
2、位,1个停止位 m_ctrlComm.SetSettings(9600,n,8,1);if(!m_ctrlComm.GetPortOpen()m_ctrlComm.SetPortOpen(TRUE);/打开串口/参数1表示每当串口接收缓冲区中有多于/或等于1个字符时将引发一个接收数据的OnComm事件m_ctrlComm.SetRThreshold(1);m_ctrlComm.SetInputLen(0);/设置当前接收区数据长度为0m_ctrlComm.GetInput();/先预读缓冲区以清除残留数据,自动化学院,3,接收数据按字符串接收,VARIANT variant_inp;COleS
3、afeArray safearray_inp;LONG len,k;BYTE rxdata2048;/设置BYTE数组,无符号8位整型数CString strtemp;if(m_ctrlComm.GetCommEvent()=2)/=2表示接收缓冲区内有字符variant_inp=m_ctrlComm.GetInput();/读缓冲区safearray_inp=variant_inp;/变量转换类型len=safearray_inp.GetOneDimSize();/得到有效数据长度for(k=0;klen;k+)safearray_inp.GetElement(/更新编辑框内容,自动化学院,
4、4,发送数据发送字符串,发送字符串/CStringm_strEditTXData;UpdateData(TRUE);/读取编辑框内容m_ctrlComm.SetOutput(COleVariant(m_strEditTXData);,需要发送2个字节的number,要保证number 8);/高字节bb1=(unsigned char)number;/低字节m_MSComm.SetOutput(COleVariant(bb);/发送数据,自动化学院,5,接收数据按数字接收,VARIANT variant_inp;COleSafeArray safearray_inp;LONG len,k;BYTE rxdata2048;/设置BYTE数组,无符号8位整型数CString strtemp;if(m_ctrlComm.GetCommEvent()=2)/=2表示接收缓冲区内有字符variant_inp=m_ctrlComm.GetInput();/读缓冲区safearray_inp=variant_inp;/变量转换类型len=safearray_inp.GetOneDimSize();/得到有效数据长度for(k=0;klen;k+)safearray_inp.GetElement(,