当前位置:编程学习 > VB >>

求助 MSCOMM 的 发送字节 间延时问题。

--------------------编程问答-------------------- 神马协议规定的这么死啊? --------------------编程问答-------------------- 按9600波特率计算,每字节约1000us,每字节按8数据位,无校验位,1停止位,加上1起始位,每位约耗时100us,所以相邻2字节的停止位与起始位之间位差就是100us,完全达到所谓字节间的延迟要求. --------------------编程问答-------------------- http://download.csdn.net/source/1262066 --------------------编程问答--------------------
引用 2 楼 zdingyun 的回复:
按9600波特率计算,每字节约1000us,每字节按8数据位,无校验位,1停止位,加上1起始位,每位约耗时100us,所以相邻2字节的停止位与起始位之间位差就是100us,完全达到所谓字节间的延迟要求.


我忘了说一下了, 波特率必须是 460800   --------------------编程问答--------------------
引用 3 楼 veron_04 的回复:
http://download.csdn.net/source/1262066


这个例子是一般的通讯编程。达不到我的要求。 

我的波特率是 460800 , 
要求1: 帧周期5ms,这个已经实现。
要求2: 每发送1帧数据(15个字节)耗时1ms, 也就是(字节的间隔是 60us 左右) --------------------编程问答--------------------
引用 4 楼 yzgolden 的回复:
引用 2 楼 zdingyun 的回复:

按9600波特率计算,每字节约1000us,每字节按8数据位,无校验位,1停止位,加上1起始位,每位约耗时100us,所以相邻2字节的停止位与起始位之间位差就是100us,完全达到所谓字节间的延迟要求.


我忘了说一下了, 波特率必须是 460800

据我所知,MsComm控件能设置的最高波特率是115200,你那通信需要用API来实现. --------------------编程问答-------------------- --------------------编程问答-------------------- VB使用API编写的串口调试器:
http://download.csdn.net/source/1339593 --------------------编程问答--------------------
引用 6 楼 zdingyun 的回复:
引用 4 楼 yzgolden 的回复:
引用 2 楼 zdingyun 的回复:

按9600波特率计算,每字节约1000us,每字节按8数据位,无校验位,1停止位,加上1起始位,每位约耗时100us,所以相邻2字节的停止位与起始位之间位差就是100us,完全达到所谓字节间的延迟要求.


我忘了说一下了, 波特率必须是 460800

据我所知,MsComm控件能设置的最高波特……


115k 是电脑的串口, 我用的 是 USB 转 串口,MOXA 产的,可以到 926.1k bps 。 --------------------编程问答--------------------
引用 9 楼 yzgolden 的回复:
115k 是电脑的串口, 我用的 是 USB 转 串口,MOXA 产的,可以到 926.1k bps 。 


请问LZ:你用MsComm控件实现波特率460800下的通信了吗?

--------------------编程问答--------------------
引用 9 楼 yzgolden 的回复:
引用 6 楼 zdingyun 的回复:
引用 4 楼 yzgolden 的回复:
引用 2 楼 zdingyun 的回复:

按9600波特率计算,每字节约1000us,每字节按8数据位,无校验位,1停止位,加上1起始位,每位约耗时100us,所以相邻2字节的停止位与起始位之间位差就是100us,完全达到所谓字节间的延迟要求.


我忘了说一下了, 波特率必须是 460800

……

如果是USB转的串口,我表示更悲观! --------------------编程问答--------------------
引用 10 楼 zdingyun 的回复:
引用 9 楼 yzgolden 的回复:
115k 是电脑的串口, 我用的 是 USB 转 串口,MOXA 产的,可以到 926.1k bps 。 

请问LZ:你用MsComm控件实现波特率460800下的通信了吗?


MSCOMM 和 API ,我都可以用460800 打开虚拟的串口进行通信。 --------------------编程问答-------------------- --------------------编程问答-------------------- 问题还没有解决,自己顶。 谁能给个API 串口程序 ,发送部分 要 1个字节 1个字节 的发的,不要提交数组的。 --------------------编程问答--------------------
引用 14 楼 yzgolden 的回复:
问题还没有解决,自己顶。 谁能给个API 串口程序 ,发送部分 要 1个字节 1个字节 的发的,不要提交数组的。


不符合常规的要求,无法解决的. --------------------编程问答-------------------- 牛..........牛的没话说了....

不知道楼主知不知道啥叫做 "协议" 你的终端设备叫啥名称 ? 真是大开眼界了 必需 460800 --------------------编程问答--------------------
引用 16 楼 cbm666 的回复:
牛..........牛的没话说了....

不知道楼主知不知道啥叫做 "协议" 你的终端设备叫啥名称 ? 真是大开眼界了 必需 460800


--------------------编程问答-------------------- Private Sub Combo1_Click()
    On Error GoTo err1
    If COMMFX.PortOpen = True Then COMMFX.PortOpen = False
    COMMFX.CommPort = Combo1.ListIndex + 1
    COMMFX.Settings = "9600,E,7,1"
    COMMFX.InputLen = 0
    COMMFX.OutBufferCount = 0
    COMMFX.InBufferCount = 0
    COMMFX.PortOpen = True
    Exit Sub
err1:
  MsgBox Err.Description
End Sub
补充:VB ,  控件
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,