串口通讯关于write需要的时间问题

whwasd 2013-05-13 05:21:22
在波特率改变时,write的时间也会改变。但这个命令所需要的时间和波特率的时间不同。比如我在送1029Byte的数据时,当115200时是0.046秒,当是460800或者921600时,时间都是一样是0.0156秒。
我算时间的程序如下:
Dim aaa As Double = Microsoft.VisualBasic.Timer
SerialCom.Write(Data1, 0, 1029)
Debug.Print(Format(Microsoft.VisualBasic.Timer - aaa, "0.0000"))

我想问的是:这个write的所需要时间难道不是按波特率计算出来的时间?(按计算115200送1K数据大概要0.070秒,460800时是0.016左右,不知我有没有算错。请指教)谢谢!
...全文
299 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tiger_Zhao 2013-05-16
  • 打赏
  • 举报
回复
由于缓存的存在,写入和发送的时间是有差异的。
应该用远大于换成的数据块开测试,
比如发送 10M、11M 的时间分别是 t1、t2,时间差 (t2-t1) 大概就是传送 1M 数据所需的时间。
帮帮你我她 2013-05-13
  • 打赏
  • 举报
回复

   Tx1_Sp.DiscardInBuffer()     '清空接收缓冲
   Tx1_Sp.Write(Fs_Bytes, 0, Fs_Bytes.Length)
   Do
     System.Windows.Forms.Application.DoEvents() '释放控制
   Loop Until Tx1_Sp.BytesToWrite = 0 '等待发送完
   '3.5个字符延时
   System.Windows.Forms.Application.DoEvents()  
   System.Threading.Thread.Sleep(65 + Int(1 / Single.Parse(Kjx.TX1_BaudRate) * 11 * 3.5 * 1000))   

16,556

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧