详情请进入 湖南阳光电子学校 已关注:人 咨询电话:0731-85579057 微信号:yp941688, yp94168
1.先添加各控件,添加后的对话框如下图:
2.再添加对应的成员变量。
3. 后添加函数(事件处理函数)。
3.1初始化,设置串口各参数。
BOOLCLedControlDlg::OnInitDialog(){CDialog::OnInitDialog();// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动// 执行此操作SetIcon(m_hIcon, TRUE); // 设置大图标SetIcon(m_hIcon, FALSE); // 设置小图标// TODO: 在此添加额外的初始化代码m_ctrlComm.put__CommPort(5); //选择com3m_ctrlComm.put_InputMode(1); //以二进制方式输入m_ctrlComm.put_InBufferSize(1024);m_ctrlComm.put_OutBufferSize(512);//设置串口,波特率115200,无校验位,数据位8,停止位1m_ctrlComm.put_Settings(_T("115200,n,8,1"));//参数1表示当接受缓冲区有多于等于1个字符//引发OnCommm_ctrlComm.put_RThreshold(1);if(!m_ctrlComm.get_PortOpen()){m_ctrlComm.put_PortOpen(TRUE);//打开串口}m_ctrlComm.put_InputLen(0); //设置当前缓冲区为0m_ctrlComm.get_Input(); //先预读缓冲区returnTRUE; // 除非将焦点设置到控件,否则返回 TRUE}3.2处理串口发来的数据。
voidCLedControlDlg::OnComm(){// TODO: 在此处添加消息处理程序代码VARIANT variant_inp;COleSafeArray safearray_inp;LONGlen,k;BYTErxdata[2048]; //设置BYTE数组 An 8-bit integerthat is not signed.CString strtemp;if(m_ctrlComm.get_CommEvent()==2) //事件值为2表示接收缓冲区内有字符{ ////////以下你可以根据自己的通信协议加入处理代码variant_inp=m_ctrlComm.get_Input(); //读缓冲区safearray_inp=variant_inp; //VARIANT型变量转换为ColeSafeArray型变量len=safearray_inp.GetOneDimSize(); //得到有效数据长度for(k=0;k.(编辑:贡井电工培训学校)