本人有一个用mfc实现的串口程序,初始化如下

本人有一个用mfc实现的串口程序,初始化如下

ID:1552505

大小:62.00 KB

页数:2页

时间:2017-11-12

本人有一个用mfc实现的串口程序,初始化如下_第1页
本人有一个用mfc实现的串口程序,初始化如下_第2页
资源描述:

《本人有一个用mfc实现的串口程序,初始化如下》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、本人有一个用MFC实现的串口程序,初始化如下:ResetData();fp=fopen("output.txt","w+");if(m_MSComm.GetPortOpen())//如果串口是打开的,则行关闭串口m_MSComm.SetPortOpen(FALSE);m_MSComm.SetCommPort(1);//选择COM1m_MSComm.SetInBufferSize(1024);//接收缓冲区的大小m_MSComm.SetOutBufferSize(512);//发送缓冲区的大小m_MSComm.SetInputLen(0);//设置当前接收区数据

2、长度为0,表示全部读取m_MSComm.SetInputMode(1);//以二进制方式读写数据m_MSComm.SetRThreshold(21);//接收缓冲区有1个及1个以上字符时,将引发接收数据的OnComm事件m_MSComm.SetSettings("19200,n,8,1");//波特率19200无检验位,8个数据位,1个停止位if(!m_MSComm.GetPortOpen())//如果串口没有打开则打开m_MSComm.SetPortOpen(TRUE);//打开串口elseAfxMessageBox("OpenSerialPortFailu

3、re!");inta;a=m_MSComm.GetInBufferCount();//将输入缓冲区内等待读取的字节数赋给am_MSComm.GetInput();//先预读缓冲区以清除残留数据向接受机发送了字符串“01qS”的程序如下:inti;intmm,nn;CByteArrayarray;array.RemoveAll();array.SetSize(4);for(i=0;i<4;i++){array.SetAt(i,tdata[1][i]);//unsignedchartdata[3][4]={{'H'},{'0','1','q','S'},{'0',

4、'1','r','S'}};}if(!m_MSComm.GetPortOpen())m_MSComm.SetPortOpen(TRUE);//发送数据m_MSComm.SetOutput(COleVariant(array));//删除数据,释放内存array.RemoveAll();array.FreeExtra();接收机有两种板子,分别采用射频技术和蓝牙技术。当采用射频板子时,发现板子能正确接受数据,PC随后接受到板子发来的一系列数据(说明上面的程序是对的)。但当替换为蓝牙板子时,板子不能接受到正确的数据,而且二者的数据格式和波特率完全相同。本人用串口调

5、试软件sscom32对蓝牙板子进行测试,如下设置后能板子正确接受到PC发来的命令,由于板子接受到“01qS”的命令后会向PC机发送数据,但sscom32并没有接受到数据。但当我选中RTS后,sscom32接受到了蓝牙板子的数据并在上面的数据框中显示:这表明蓝牙板子已和sscom32正常通信了。请问是否是因为我上面的程序没有添加流控制协议才导致和蓝牙板子通信的失败,还是别的原因?请问如何解决,对上面的程序如何修改?急用,不胜感激!

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

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

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