完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
最近在搞迷宫扫雷小车,自己用VS2012的MFC写了个上位机,但是出现一个很大的问题,上位机能向下位机发数据,下位机也能收到,但上位机却收不到下位机发回来的信息,而我用串口调试助手测试时却能收能发,到底是我的上位机出现哪个问题?求大神帮助啊!!
蓝牙模块是原子的ATK HC05模块,连接正常。 这是我上位机的界面 附上自己写的串口接受和发送的函数代码 void CMineClearerDlg::OnCommMscomm() { if(m_ComPort.get_CommEvent()==2) { CString rec_str;// 保存接收到的字符串 VARIANT variant_inp; COleSafeArray safearray_inp; long k; int len,pos; byte rxdata[512];//设置 BYTE 数组 CString strtemp; variant_inp=m_ComPort.get_Input();//读缓冲区消息 safearray_inp=variant_inp;//变量转换 len=safearray_inp.GetOneDimSize();//得到有效的数据长度 for(k=0;k // 现在接收到的数据保存在 rxdata 中 safearray_inp.GetElement(&k,rxdata+k); //转换为BYTE型数组 BYTE bt=*(char*)(rxdata+k); //字符型 strtemp.Format("%c",bt); //将字符送入临时变量strtemp存放 m_receive+=strtemp; } CString szV; szV.Format("%s",m_receive);//szV是接收编辑框的变量 m_V.SetWindowText(szV);//显示接受到数据 } } void CMineClearerDlg::OnBnClickedButtonSend() { // TODO: 在此添加控件通知处理程序代码 UpdateData(TRUE); int len; CByteArray array; len=m_send.GetLength(); array.RemoveAll(); array.SetSize(len); for(int i=0;i m_ComPort.put_Output(COleVariant(array)); // 发送数据 } 我上网找个很多资料,却一直没找出原因,跪求各位大神帮助!! |
|
相关推荐
6个回答
|
|
已解决,是蓝牙适配器的问题,电脑用蓝牙适配器跟蓝牙模块通讯有个小小的bug,可能是MFC的串口控件不是很好用吧,后来用两个蓝牙模块通讯就没问题了。还是谢谢原子哥~
|
|
|
|
求路过的大神指教一下。。。
|
|
|
|
|
|
|
|
我也知道是上位机出了问题,可是我找不出原因,代码也贴出了,想大家帮忙看看哪里出问题了。。。
|
|
|
|
|
|
|
|
你好,你的MFC蓝牙和上位机通信好了吗,我也遇到了问题,就是MFC打不开我给蓝牙模块通信分配的虚拟端口
|
|
|
|
只有小组成员才能发言,加入小组>>
317浏览 1评论
433浏览 1评论
561浏览 1评论
用PSOC6 BLE当外围设备,两者传输数据时,psoc6概率性出现蓝牙挂死的原因?
447浏览 1评论
是否有办法通过CYW20835板的固件发送BLE HCI命令?
420浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-14 07:10 , Processed in 0.545110 second(s), Total 59, Slave 52 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号