MSCOMM串口通信的接收与发送 接收区缓存如何清除 请教各

VC &&&&最新内容
VC &&&&相关内容MFC中的mscomm控件怎么接收缓冲区中的问题_百度知道
MFC中的mscomm控件怎么接收缓冲区中的问题
MFC中的mscomm控件怎么实现接收缓冲区中的数据,将它的前6个字节赋给一个变量a,接下来的6个字节赋给另一个变量b,然后再接下来的6个字节赋给变量a,再接下来的6个字节赋给变量b……依...
MFC中的mscomm控件怎么实现接收缓冲区中的数据,将它的前6个字节赋给一个变量a,接下来的6个字节赋给另一个变量b,然后再接下来的6个字节赋给变量a,再接下来的6个字节赋给变量b……依次循环!!!
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
龚炜林知道合伙人
采纳数:734
获赞数:1248
if(m_commCtrl.GetCommEvent() == 2) //事件值为2表示接收缓冲区内有字符{CByteACOleSafeArray dataGtry{dataGet = m_commCtrl.GetInput(); //读缓冲区long len = dataGet.GetOneDimSize(); //得到有效数据长度if(len &= 6)//对数据大小判断,我这里示例是6,你也可以不要判断{dataGet.GetByteArray(bytes);//这样你可以把bytes当数组用了。如bytes[0]就是第一个字节}}catch (CException* e){e-&ReportError();e-&Delete();}}当获取了bytes以后,你想怎么操作都行。
好像不能满足我提出来的条件吧?我要求是总共有四个变量a,b,c,d,缓冲区中的第一个6个字节要给a,第二个6个字节要给b,第三个6个字节要给c,第四个6个字节要给d,再接着的6个字节要给a,依次循环!
你好,我只是没有帮你赋值而已。因为不知道你设置接收多少个字节才触发事件。我假设你设定1个字节触发假设你定义成员变量m_data然后定义收到数据长度m_len在每次进入这个函数if(len)for(int i = 0; i & ++i)
m_data[m_len+i] = bytes[0]; 然后if(m_len&=24){
你把m_data的值给你要赋值的变量就行了。}其实我上边的示例就是告诉你在每次触发串口接收事件里读取数据长度为len,数据可以使用bytes[i]来获取第i个字节,剩下的赋值的事儿看你怎么用而已。如果还不明白,我也没辙了...
为你推荐:
其他类似问题
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。MScomm的输入缓冲区怎么设置?
[问题点数:20分,结帖人moodboy]
本版专家分:410
结帖率 100%
CSDN今日推荐
本版专家分:410
本版专家分:410
本版专家分:410
本版专家分:410
本版专家分:410
本版专家分:410
本版专家分:410
本版专家分:410
匿名用户不能发表回复!|
其他相关推荐MFC 采用CSComm控件怎么清空串口缓存区
[问题点数:100分,结帖人u]
本版专家分:0
结帖率 88.89%
CSDN今日推荐
本版专家分:0
本版专家分:53949
2015年8月 硬件/嵌入开发大版内专家分月排行榜第一2015年7月 VC/MFC大版内专家分月排行榜第一2015年5月 VC/MFC大版内专家分月排行榜第一2015年4月 VC/MFC大版内专家分月排行榜第一2015年3月 VC/MFC大版内专家分月排行榜第一2015年1月 硬件/嵌入开发大版内专家分月排行榜第一2013年12月 VC/MFC大版内专家分月排行榜第一2013年11月 VC/MFC大版内专家分月排行榜第一2013年6月 VB大版内专家分月排行榜第一2013年5月 VB大版内专家分月排行榜第一2013年1月 VB大版内专家分月排行榜第一2012年12月 VB大版内专家分月排行榜第一
2015年9月 VC/MFC大版内专家分月排行榜第二2015年7月 硬件/嵌入开发大版内专家分月排行榜第二2014年5月 VC/MFC大版内专家分月排行榜第二2014年3月 VC/MFC大版内专家分月排行榜第二2013年10月 VB大版内专家分月排行榜第二2013年7月 VB大版内专家分月排行榜第二2012年5月 VB大版内专家分月排行榜第二2012年4月 VB大版内专家分月排行榜第二2012年2月 VB大版内专家分月排行榜第二2011年11月 VB大版内专家分月排行榜第二
2015年11月 VC/MFC大版内专家分月排行榜第三2015年6月 VC/MFC大版内专家分月排行榜第三2015年2月 VC/MFC大版内专家分月排行榜第三2014年1月 VC/MFC大版内专家分月排行榜第三2012年3月 VB大版内专家分月排行榜第三2011年12月 VB大版内专家分月排行榜第三2011年10月 VB大版内专家分月排行榜第三
本版专家分:53949
2015年8月 硬件/嵌入开发大版内专家分月排行榜第一2015年7月 VC/MFC大版内专家分月排行榜第一2015年5月 VC/MFC大版内专家分月排行榜第一2015年4月 VC/MFC大版内专家分月排行榜第一2015年3月 VC/MFC大版内专家分月排行榜第一2015年1月 硬件/嵌入开发大版内专家分月排行榜第一2013年12月 VC/MFC大版内专家分月排行榜第一2013年11月 VC/MFC大版内专家分月排行榜第一2013年6月 VB大版内专家分月排行榜第一2013年5月 VB大版内专家分月排行榜第一2013年1月 VB大版内专家分月排行榜第一2012年12月 VB大版内专家分月排行榜第一
2015年9月 VC/MFC大版内专家分月排行榜第二2015年7月 硬件/嵌入开发大版内专家分月排行榜第二2014年5月 VC/MFC大版内专家分月排行榜第二2014年3月 VC/MFC大版内专家分月排行榜第二2013年10月 VB大版内专家分月排行榜第二2013年7月 VB大版内专家分月排行榜第二2012年5月 VB大版内专家分月排行榜第二2012年4月 VB大版内专家分月排行榜第二2012年2月 VB大版内专家分月排行榜第二2011年11月 VB大版内专家分月排行榜第二
2015年11月 VC/MFC大版内专家分月排行榜第三2015年6月 VC/MFC大版内专家分月排行榜第三2015年2月 VC/MFC大版内专家分月排行榜第三2014年1月 VC/MFC大版内专家分月排行榜第三2012年3月 VB大版内专家分月排行榜第三2011年12月 VB大版内专家分月排行榜第三2011年10月 VB大版内专家分月排行榜第三
本版专家分:0
本版专家分:0
本版专家分:0
本版专家分:53949
2015年8月 硬件/嵌入开发大版内专家分月排行榜第一2015年7月 VC/MFC大版内专家分月排行榜第一2015年5月 VC/MFC大版内专家分月排行榜第一2015年4月 VC/MFC大版内专家分月排行榜第一2015年3月 VC/MFC大版内专家分月排行榜第一2015年1月 硬件/嵌入开发大版内专家分月排行榜第一2013年12月 VC/MFC大版内专家分月排行榜第一2013年11月 VC/MFC大版内专家分月排行榜第一2013年6月 VB大版内专家分月排行榜第一2013年5月 VB大版内专家分月排行榜第一2013年1月 VB大版内专家分月排行榜第一2012年12月 VB大版内专家分月排行榜第一
2015年9月 VC/MFC大版内专家分月排行榜第二2015年7月 硬件/嵌入开发大版内专家分月排行榜第二2014年5月 VC/MFC大版内专家分月排行榜第二2014年3月 VC/MFC大版内专家分月排行榜第二2013年10月 VB大版内专家分月排行榜第二2013年7月 VB大版内专家分月排行榜第二2012年5月 VB大版内专家分月排行榜第二2012年4月 VB大版内专家分月排行榜第二2012年2月 VB大版内专家分月排行榜第二2011年11月 VB大版内专家分月排行榜第二
2015年11月 VC/MFC大版内专家分月排行榜第三2015年6月 VC/MFC大版内专家分月排行榜第三2015年2月 VC/MFC大版内专家分月排行榜第三2014年1月 VC/MFC大版内专家分月排行榜第三2012年3月 VB大版内专家分月排行榜第三2011年12月 VB大版内专家分月排行榜第三2011年10月 VB大版内专家分月排行榜第三
本版专家分:0
本版专家分:53949
2015年8月 硬件/嵌入开发大版内专家分月排行榜第一2015年7月 VC/MFC大版内专家分月排行榜第一2015年5月 VC/MFC大版内专家分月排行榜第一2015年4月 VC/MFC大版内专家分月排行榜第一2015年3月 VC/MFC大版内专家分月排行榜第一2015年1月 硬件/嵌入开发大版内专家分月排行榜第一2013年12月 VC/MFC大版内专家分月排行榜第一2013年11月 VC/MFC大版内专家分月排行榜第一2013年6月 VB大版内专家分月排行榜第一2013年5月 VB大版内专家分月排行榜第一2013年1月 VB大版内专家分月排行榜第一2012年12月 VB大版内专家分月排行榜第一
2015年9月 VC/MFC大版内专家分月排行榜第二2015年7月 硬件/嵌入开发大版内专家分月排行榜第二2014年5月 VC/MFC大版内专家分月排行榜第二2014年3月 VC/MFC大版内专家分月排行榜第二2013年10月 VB大版内专家分月排行榜第二2013年7月 VB大版内专家分月排行榜第二2012年5月 VB大版内专家分月排行榜第二2012年4月 VB大版内专家分月排行榜第二2012年2月 VB大版内专家分月排行榜第二2011年11月 VB大版内专家分月排行榜第二
2015年11月 VC/MFC大版内专家分月排行榜第三2015年6月 VC/MFC大版内专家分月排行榜第三2015年2月 VC/MFC大版内专家分月排行榜第三2014年1月 VC/MFC大版内专家分月排行榜第三2012年3月 VB大版内专家分月排行榜第三2011年12月 VB大版内专家分月排行榜第三2011年10月 VB大版内专家分月排行榜第三
本版专家分:0
本版专家分:53949
2015年8月 硬件/嵌入开发大版内专家分月排行榜第一2015年7月 VC/MFC大版内专家分月排行榜第一2015年5月 VC/MFC大版内专家分月排行榜第一2015年4月 VC/MFC大版内专家分月排行榜第一2015年3月 VC/MFC大版内专家分月排行榜第一2015年1月 硬件/嵌入开发大版内专家分月排行榜第一2013年12月 VC/MFC大版内专家分月排行榜第一2013年11月 VC/MFC大版内专家分月排行榜第一2013年6月 VB大版内专家分月排行榜第一2013年5月 VB大版内专家分月排行榜第一2013年1月 VB大版内专家分月排行榜第一2012年12月 VB大版内专家分月排行榜第一
2015年9月 VC/MFC大版内专家分月排行榜第二2015年7月 硬件/嵌入开发大版内专家分月排行榜第二2014年5月 VC/MFC大版内专家分月排行榜第二2014年3月 VC/MFC大版内专家分月排行榜第二2013年10月 VB大版内专家分月排行榜第二2013年7月 VB大版内专家分月排行榜第二2012年5月 VB大版内专家分月排行榜第二2012年4月 VB大版内专家分月排行榜第二2012年2月 VB大版内专家分月排行榜第二2011年11月 VB大版内专家分月排行榜第二
2015年11月 VC/MFC大版内专家分月排行榜第三2015年6月 VC/MFC大版内专家分月排行榜第三2015年2月 VC/MFC大版内专家分月排行榜第三2014年1月 VC/MFC大版内专家分月排行榜第三2012年3月 VB大版内专家分月排行榜第三2011年12月 VB大版内专家分月排行榜第三2011年10月 VB大版内专家分月排行榜第三
本版专家分:0
本版专家分:53949
2015年8月 硬件/嵌入开发大版内专家分月排行榜第一2015年7月 VC/MFC大版内专家分月排行榜第一2015年5月 VC/MFC大版内专家分月排行榜第一2015年4月 VC/MFC大版内专家分月排行榜第一2015年3月 VC/MFC大版内专家分月排行榜第一2015年1月 硬件/嵌入开发大版内专家分月排行榜第一2013年12月 VC/MFC大版内专家分月排行榜第一2013年11月 VC/MFC大版内专家分月排行榜第一2013年6月 VB大版内专家分月排行榜第一2013年5月 VB大版内专家分月排行榜第一2013年1月 VB大版内专家分月排行榜第一2012年12月 VB大版内专家分月排行榜第一
2015年9月 VC/MFC大版内专家分月排行榜第二2015年7月 硬件/嵌入开发大版内专家分月排行榜第二2014年5月 VC/MFC大版内专家分月排行榜第二2014年3月 VC/MFC大版内专家分月排行榜第二2013年10月 VB大版内专家分月排行榜第二2013年7月 VB大版内专家分月排行榜第二2012年5月 VB大版内专家分月排行榜第二2012年4月 VB大版内专家分月排行榜第二2012年2月 VB大版内专家分月排行榜第二2011年11月 VB大版内专家分月排行榜第二
2015年11月 VC/MFC大版内专家分月排行榜第三2015年6月 VC/MFC大版内专家分月排行榜第三2015年2月 VC/MFC大版内专家分月排行榜第三2014年1月 VC/MFC大版内专家分月排行榜第三2012年3月 VB大版内专家分月排行榜第三2011年12月 VB大版内专家分月排行榜第三2011年10月 VB大版内专家分月排行榜第三
本版专家分:53949
2015年8月 硬件/嵌入开发大版内专家分月排行榜第一2015年7月 VC/MFC大版内专家分月排行榜第一2015年5月 VC/MFC大版内专家分月排行榜第一2015年4月 VC/MFC大版内专家分月排行榜第一2015年3月 VC/MFC大版内专家分月排行榜第一2015年1月 硬件/嵌入开发大版内专家分月排行榜第一2013年12月 VC/MFC大版内专家分月排行榜第一2013年11月 VC/MFC大版内专家分月排行榜第一2013年6月 VB大版内专家分月排行榜第一2013年5月 VB大版内专家分月排行榜第一2013年1月 VB大版内专家分月排行榜第一2012年12月 VB大版内专家分月排行榜第一
2015年9月 VC/MFC大版内专家分月排行榜第二2015年7月 硬件/嵌入开发大版内专家分月排行榜第二2014年5月 VC/MFC大版内专家分月排行榜第二2014年3月 VC/MFC大版内专家分月排行榜第二2013年10月 VB大版内专家分月排行榜第二2013年7月 VB大版内专家分月排行榜第二2012年5月 VB大版内专家分月排行榜第二2012年4月 VB大版内专家分月排行榜第二2012年2月 VB大版内专家分月排行榜第二2011年11月 VB大版内专家分月排行榜第二
2015年11月 VC/MFC大版内专家分月排行榜第三2015年6月 VC/MFC大版内专家分月排行榜第三2015年2月 VC/MFC大版内专家分月排行榜第三2014年1月 VC/MFC大版内专家分月排行榜第三2012年3月 VB大版内专家分月排行榜第三2011年12月 VB大版内专家分月排行榜第三2011年10月 VB大版内专家分月排行榜第三
本版专家分:0
本版专家分:8
匿名用户不能发表回复!|
其他相关推荐
在arduino1.0之前的版本 Serial.flush()的作用是是清空串口缓存(
dropping received incoming data)。但在1.0之后的版本 Serial.flush()的作用调整为了等待串口数据传送完毕(Waits
for the transmission of outgoing serial data to complete.)(引用自http://a
MSComm控件
  Visual C++为我们提供了一种好用的ActiveX控件Microsoft Communications Control(即MSComm)来支持应用程序对串口的访问,在应用程序中插入MSComm控件后就可以较为方便地实现对通过计算机串口收发数据。
  要使用ActiveX控件MSComm,程序员必须将其添加入工程,其方法是:
  (1)单击主菜单proj
vc++6.0使用串口控件例程 1.建立项目:打开VC++6.0,建立一个基于对话框的MFC应用程序SCommT2.在项目中插入MSComm控件
选择Project菜单下Add To Project子菜单中的 Components and Controls…选项,在弹出的对话框中双击Registered ActiveX Controls项(稍等一会,这个过程较慢),
该函数原型:BOOL PurgeComm(HANDLE hFile,DWORD dwFlags )HANDLE hFile //串口句柄
DWORD dwFlags // 需要完成的操作 参数dwFlags指定要完成的操作,可以是下列值的组合:PURGE_TXABORT 终止所有正在进行的字符输出操作,完成一个正处于等待状态的重叠i/o操作,他将产生一个事件,指明完成了写操作
有网友也提到qt第三方类的flush函数不好用的观点,我最近正好在做一个程序,自己起一个读线程一个写线程,通过切换变量控制读写,就像单刀双置开关一样。没办法,对方的通信协议定的这样,不过这种办法虽随不是异步通信,但保障了安全,两个线程绝对不会串在一起,然后通过回传机制检验数据正确性。我就发现一点奇怪之处,当我每次点发送之前,我用了flush函数清空串口,但还是能读到数据(对方并未发送),可能是上次
既然是写一个串口,那么肯定需要串口了,目前mfc支持两种串口创建方式,
1:调用串口类,继承并且实现部分函数,
很复杂,但是很灵活
2:下载串口控件,也就是Axxxxx X控件,
这个在csdn上面有,2个下载币,名字叫做MSCOMM,http://pan.baidu.com/s/1qYMOZJQ 做做好人喽,,下载之后把里面的4个文件复制到c/windows/system32
readAll( )
打开VC++6.0,建立一个基于对话框的MFC应用程序。
  菜单中依次选择Project -& Add To Project -& Components and Controls
  在弹出的Components and Controls Gallery 窗
当我们在使用scanf()函数读取标准输入时,其结果并不总是正确。有时,为了防止缓冲区数据对结果的影响,我们需要清空标准缓冲区。首先我们得知道在LINUX下标准I/O为我们提供了那几中类型的缓冲区。
标准I/O库提供了3种类型的缓冲。
1.全缓冲:在这种情况下,只有在填满缓冲区后才进行实际的I/O操作。
2.行缓冲区:当输入和输出遇到换行符时,标准I/O库才进行实际的I/O操作。
经过这两天的调试,基本上搞定了dsp和机器人上位机界面,先记录下我的上位机。
实验室是做机器人控制的,经常会用到上位机,我只搞过简单的上位机的编写,是基于mfc的对话框的,很多原理性的东西现在也是懵懵懂懂的,但好歹是功能也实现了。回顾自己的上位机主要涉及过的东西为一些基本控件的使用(编辑框,按钮等等),1.串口发送和接收数据,2.手柄扫描(因为实验室用手柄来遥控机器人,扫描到手您的位置:&&推荐的文章
急!请教RS485串口通讯的问题
如果有确定的接收字节长度,设置Rthreshold等于接收字节长度有利接收正确率提高.由于你的几个下位机返回数据包字节不等长,你可根据寻址命令发出前预先改变Rthreshold值来保证接收返回符合要求的字节长度.不然你接收多少字节符合你改发下一寻址命令呢?程序代码处理难度较高.实际下位机返回数据包可在其代码中补一定其它字节来达到等长,从而使接收代码变得简洁.等长接收数据后可对接收处理清0来等待下次接收. 补充:假如下位机的返回数据按地址号能确定接收字节长度,下列代码可实现接收不等长数据,仅供参考:Private Sub MSComm1_OnComm()On Error Resume Next
Dim BytReceived() As Byte
Dim strBuff As String
Dim strData As String
Dim i As Integer
Dim x As Integer
Select Case MSComm1.CommEvent
MSComm1.InputLen = 0
strBuff = MSComm1.Input
BytReceived() = strBuff
For i = 0 To UBound(BytReceived)
If Len(Hex(BytReceived(i))) = 1 Then
strData = strData & &0& & Hex(BytReceived(i))
strData = strData & Hex(BytReceived(i))
Text3 = Text3 + strData
If Left(strData, 2) = &00& And Len(strData) = 8 Then
Text1(0).Text = Left(strData, 8)
Call DataClear
ElseIf Left(strData, 2) = &01& And Len(strData) = 10 Then
Text1(1).Text = Left(strData, 10)
Call DataClear
End IfEnd SelectEnd SubPublic Sub DataClear()MSComm1.OutBufferCount = 0 '清空发送缓冲区MSComm1.InBufferCount = 0Text3 = &&End SubPrivate Sub Form_Load()MSComm1.CommPort = 1 'COM端口MSComm1.Settings = &9600,n,8,1&MSComm1.InputMode = comInputModeBinary '采用二进制传输MSComm1.InBufferCount = 0 '清空接受缓冲区MSComm1.OutBufferCount = 0 '清空传输缓冲区'MSComm1.SThreshold = 1 '如果传输缓冲区完全空时产生MSComm事件MSComm1.RThreshold = 1 '不产生MSComm事件MSComm1.PortOpen = TrueText3 = && '打开端口End Sub
看你怎么接的线,串口转485的芯片很多时候接法是读写使能和写引脚是连一起的,你根本不用关心读写方向,...
如果有确定的接收字节长度,设置Rthreshold等于接收字节长度有利接收正确率提高.由于你的几个下...
comm.jar 通过串口,PC机可以获取设备的输入数据,也可以让PC机向设备输出输出。你的设备应该...
无锡铭芯微电子有限公司
我们通常说的串口通信是默认计算机的RS232串口,RS485接口是差分的,用于可靠性高的领域。计算机...
rs485接口准确的说并不是串口,串口是RS232,但是可以转换接头来在串口上使用,RS485的相关...
232-485 转换器 E485C RS-232/RS-485/422无源转换器 特点 ?RS-23...
RS-232:用于与调制解调器、打印机及其它PC外设之间的通信。最大电缆长度为100英尺(典型值)。...
你自己也提到: “假如每次发送和接收的数据量比较大,通讯系统实时性就差了” 所以为了确保系统的实时性...
加Q手把手教你。追问一下赏金如何拿到?哈哈……
购物网站热门产品排行

我要回帖

更多关于 串口通信延迟缓存 的文章

 

随机推荐