⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_59118.htm

📁 vc
💻 HTM
字号:
<p>
序号:59118 发表者:二极管 发表日期:2003-11-06 08:58:05
<br>主题:请教串口的工作原理
<br>内容:我在两台机子上使用串口传文件,设接收缓冲区大小是512字节,我现在发送一个544字节的文件。用的COMM控件,设Rthreshold为1,那我的数据在串口线上走到接受端缓冲区的过程是什么呢?<BR>Rthreshold的意思是设为一阈值后,接收缓冲区内的字节数达到或超过该值后就会产生OnComm接收事件是什么意思啊?什么叫达到或超过啊?<BR>原来想法是文件在串口线上传,然后进入接收缓冲区,接收缓冲区只要有一个字节,即等于Rthreshold时就产生OnComm接收事件。<BR>但我用断点调了一下,发现不是这么回事,第一次产生OnComm接收事件收到8个字节,第二次产生OnComm接收事件收到512字节(接收缓冲区大小)那是不是文件按字节依次进入接收缓冲,当接收缓冲满时,产生OnComm接收事件,而当最后字节不够满时,就符合Rthreshold的意思是设为一阈值后而产生OnComm接收事件啊,好像也不大对?<BR>那到底是怎么回事?<BR>还有就是有没有可能我OnComm接收事件来不及响应,发生丢字节的情况,还是接收缓冲满了后,就让其他字节在串口线上等着发生OnComm接收事件来读空接收缓冲后进入接收缓冲呢?<BR>谢谢!
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:夏雪宜 回复日期:2003-11-06 10:04:02
<br>内容:一般是有一个或一个以上的字节,就会产生OnComm接收事件,接收到的当然也就不一定是一个,应该缓冲区中有多少个就读取多少个,实际上一般都大于一个。不会发生自己丢失情况的,你所看到的情况是因为你是在调试,线程停止到调试点了,所以进入缓冲区的数据达到500多个,实际上如果程序正常运行期间,根本不可能达到那么多的字节数就响应时间处理函数了。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:二极管 回复日期:2003-11-06 11:02:52
<br>内容:谢谢!<BR><BR>那不是有一个字节就产生OnComm接收事件,那为什么“实际上一般都大于一个”,难道是OnComm接收事件来不及响应?(是不是按理论如果OnComm接收事件是零时间处理的话,那么接收缓冲里有一个字节就会产生一次OnComm接收事件,也就是说接收缓冲里永远不会有超过两个字节?)
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:夏雪宜 回复日期:2003-11-06 13:18:06
<br>内容:建议你自己做一个小测试程序,将每一次读入的数据的个数都显示出来,这样你就知道是否一个字节就响应一次,实际上一般都大于一个。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:二极管 回复日期:2003-11-06 18:06:41
<br>内容:谢谢
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -