请各位高手帮忙解决VC++编写的上位机与单片机串口通信的问题
我是想用VC上位机的按钮控制单片机的发光二极管的亮灭的,但得不到像要的结果。貌似接收的数据不对。请各位高手帮忙解决。控件的部分程序如下voidCLedDlg::OnOnC...
我是想用VC上位机的按钮控制单片机的发光二极管的亮灭的,但得不到像要的结果。貌似接收的数据不对。请各位高手帮忙解决。控件的部分程序如下void CLedDlg::OnOnCommMscomm1() { // TODO: Add your control notification handler code here VARIANT variant_inp; COleSafeArray safearray_inp; LONG len,k; BYTE rxdata[2048]; if(m_comm.GetCommEvent()==2) { variant_inp=m_comm.GetInput(); safearray_inp=variant_inp; len=safearray_inp.GetOneDimSize(); for(k=0;k<len;k++) safearray_inp.GetElement(&k,rxdata+k); binData.SetSize(len);//binData为CByteArray型全局变量 for(k=0;k<len;k++)//怎么把接收的数据变成CByteArray型变量放在binData中?? { BYTE bt=*(int*)(rxdata+k); binData.SetAt(k,bt); } }}void CLedDlg::OnButton1() { // TODO: Add your control notification handler code here unsigned char chData[8]; LONG len,k; CString str; chData[1]=0x01; chData[2]=0xfe; len=binData.GetSize(); for(k=0;k<len;k++) chData[0]+=binData.GetAt(k); if(GetDlgItem(IDC_BUTTON1)->GetWindowText(str),str=="led1亮") { GetDlgItem(IDC_BUTTON1)->SetWindowText("led1灭"); chData[0] = chData[0] | chData[1] ; } else { GetDlgItem(IDC_BUTTON1)->SetWindowText("led1亮"); chData[0] = chData[0] & chData[2] ; } binData.RemoveAll(); binData.Add(chData[0]); COleVariant var(binData); m_comm.SetOutput(var);}
展开
1个回答
2011-10-21
展开全部
推荐看书
Visual C++_Turbo C串口通信编程实践
Visual C++_Turbo C串口通信编程实践
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询