软件和与外部设备串行通信的波特率限制

2024-02-26

我使用 USB 端口作为虚拟 COM 端口运行,以使用 MATLAB 或 Visual Basic 6 实现与外部设备的串行通信。我面临波特率限制,具体取决于我用于与设备通信的软件。 MATLAB(2018a)没有问题,因为它可以设置高波特率。另一方面,Visual Basic 6 面临着软件中可设置的波特率的限制。在解决方案方面,我对此进行了研究,以在 Visual Basic 6 中设置更高的波特率:https://www.mev.co.uk/pages/Support/VB-Baud.html https://www.mev.co.uk/pages/Support/VB-Baud.html

虚拟 COM 端口的驱动程序由 FTDI 制作,可以在此处找到:http://www.ftdichip.com/Drivers/VCP.htm http://www.ftdichip.com/Drivers/VCP.htm。在设备管理器中进行配置后,我正在通信的设备在设备管理器中的“端口(COM 和 LPT)”下显示为“USB 串行端口(COM4)”。

该设备需要 1000000 的波特率和 2 个停止位才能成功通信(如果您需要更多信息,请告诉我)。据我所知,通过串口通信的软件中设置的波特率必须为1000000,才能与我使用的外部设备的波特率相匹配。我认为我的问题可能需要解释一下当 USB 端口充当虚拟 COM 端口时串行通信如何工作,因为我担心它与使用“真实”串行端口的通信(如果可能的话)不同。 FTDI 驱动程序似乎非常灵活,因此我不明白为什么 Visual Basic 不能利用这种灵活性。在 Visual Basic 6 中是否无法将波特率设置为 1000000?如果不可能的话,有什么方法可以克服这个限制吗?

下面是波特率设置的 VB6 代码,其中“Port”是 COM 端口的地址,例如COM4、COM3:

MainForm.MSComm1.CommPort = Port
MainForm.MSComm1.Settings = "9600,N,8,1"

如果有人可以帮助我了解串行通信在这种情况下的工作原理,并且如果我能够克服 Visual Basic 6 的限制,我将非常感激。


看来你使用的是MSComm32.ocx,而不是直接使用VB6。
您可以为此设置的最大速度为 256,000 bps。

如何使用Mscomm32.ocx发送​​到串口 https://support.microsoft.com/en-us/help/139526/how-to-send-to-the-serial-port-by-using-mscomm32-ocx

以下波特率值有效:110、300、600、1200、2400、4800、9600(默认)、14400、19200、28800、38400、56000、57600、115200、128000、256000。

如果您想要更快的速度,请直接使用 Win32 API 和以下库等。

通过Win32 API进行串口编程VB6 https://stackoverflow.com/q/4929414/9014308

串口通讯 http://www.thescarms.com/vbasic/CommIO.aspx

使用 Windows API 在 Visual Basic 上进行串行端口编程 https://strokescribe.com/en/serial-port-vb-winapi.html

grricks/vb6SerialAPI https://github.com/grricks/vb6SerialAPI/blob/master/clsVB6serialAPI.cls


或者,如果FTDI提供的库是像上面的库一样通过Declare Function定义的,可以使用吗?

D2XX 程序员指南 https://www.ftdichip.com/Support/Documents/ProgramGuides/D2XX_Programmer's_Guide(FT_000071).pdf

6.9 FT_W32_设置通讯状态
Example

FT_HANDLE ftHandle; // setup by FT_W32_CreateFile 
FTDCB ftDCB; 

if (FT_W32_GetCommState(ftHandle,&ftDCB)) {
    // FT_W32_GetCommState ok, device state is in ftDCB
    ftDCB.BaudRate = 921600; // Change the baud rate
    if (FT_W32_SetCommState(ftHandle,&ftDCB))
        ; // FT_W32_SetCommState ok 
    else
        ; // FT_W32_SetCommState failed
}
else
    ; // FT_W32_GetCommState failed
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

软件和与外部设备串行通信的波特率限制 的相关文章

  • MATLAB中如何画水平线和垂直线?

    我目前正在尝试在 MATLAB 中绘制简单的垂直线和水平线 例如 我想绘制线 y 245 我该怎么做呢 MATLAB 根据您提供的向量逐点进行绘图 因此 要创建一条水平线 您需要改变x同时保持y对于垂直线恒定 反之亦然 xh 0 10 yh
  • Matlab - 如果值包含xxx,则删除元胞数组中的行

    在 Matlab 中 如何删除包含变量字符串的元胞数组中的元胞 假设我的元胞数组是 C svnTrunk RadarLib radarlb utilities scatteredInterpolant m C svnTrunk RadarL
  • vb.net中如何读取串口数据?

    我创建了一个类 有一个名为 SendUSSD 的子类 当调用它时 它会向连接 gsm 手机的 COM 端口发送一个 ussd 代码 如 123 此 usd 应该返回移动余额 If IsOpen True Then checks if the
  • 在 matlab 中求 3d 峰的体积

    现在我有一个带有峰值的 3D 散点图 我需要找到其体积 我的数据来自图像 因此 x 和 y 值表示 xy 平面上的像素位置 z 值是每个像素的像素值 这是我的散点图 scatter3 x y z 20 z filled 我试图找到数据峰值的
  • 使用mat2cell将MxN的矩阵划分为1xN大小的M矩阵

    我有一个大小为 MxN 的矩阵 比方说 1867x3 1867 行和 3 列 我想将其分成 1867 个大小为 1x3 的单元格 我使用了mat2cell X 1 1866 这里X是矩阵 1867x3 结果给出了两个单元格 一个单元格的大小
  • 不等间隔时间序列的移动平均线

    我有一个证券交易所股票价格的数据集 时间 价格 但数据点之间的间隔并不相等 从 1 到 2 分钟不等 在这种情况下计算移动平均值的最佳实践是什么 如何在Matlab中实现呢 我倾向于认为 点的权重应该取决于自上一个点以来的最后时间间隔 Ma
  • 为什么旋转 3D 点云后顶点法线会翻转?

    我有两个人脸 3D 点云样本 蓝色点云表示目标面 红色点云表示模板 下图显示目标面和模板面在不同方向上对齐 目标面大致沿 x 轴 模板面大致沿 y 轴 Figure 1 The region around the nose is displ
  • Matlab没有优化以下内容吗?

    我有一个很长的向量 1xrv 和一个很长的向量w1xs 和一个矩阵Arxs 它是稀疏的 但维度非常大 我期望 Matlab 对以下内容进行优化 这样我就不会遇到内存问题 A v w 但看起来 Matlab 实际上是在尝试生成完整的v w矩阵
  • 如何在没有安装Visual Studio的另一台机器上使用Visual Studio生成的dll?

    我已经在 Visual Studio 2012 中生成了动态库 我想在另一台机器上使用该库 但我不想在远程机器上安装 Visual Studio 我有 mex 库和 dll 我想运行一个使用这两个库的脚本 当我运行脚本时 出现以下错误 缺少
  • 我想在 Windows 10 操作系统上安装 VB6。我需要处理 VBP 项目,所以我必须无缝安装 VB6

    我已经设置了VB6企业版 但无法完成安装 挂起 我已尝试通过以下链接安装程序 http nuke vbcorner net Tools VisualStudio6Installer tabid 93 language it IT Defau
  • Arduino 上的串行消息到整数

    我希望我的 Arduino 通过串行通信接收一个整数 你能帮我解决这个问题吗 它应该是这样的形式 int value strtoint Serial read 有多种方法可以读取整数Serial 很大程度上取决于数据发送时的编码方式 Ser
  • 括号中的波形符字符

    在 MATLAB 中 以下代码执行什么操作 m func returning matrix 波浪号运算符 的作用是什么 在 Matlab 中 这意味着不要将函数中相应的输出参数分配到赋值的右侧 因此 如果func returning mat
  • matlab中类库的全局变量

    我有一些matlab声明的类 我如何声明所有类中都可见的常量 例如 这些常量可以是在所有类的方法中使用的物理常量 首先想到的是使用全局变量 还有更好的办法吗 最好在单独的文件中声明这些常量 包含常量的类是执行此操作的一种很好的干净方法 请参
  • 在 Matlab 中高效获取像素坐标

    我想在 Matlab 中创建一个函数 给定一个图像 该函数将允许人们通过单击图像中的像素来选择该像素并返回该像素的坐标 理想情况下 人们能够连续单击图像中的多个像素 并且该函数会将所有相应的坐标存储在一个矩阵中 有没有办法在Matlab中做
  • 不建议在 VB.Net 中使用 Mid()、Instr()、LBound()、UBound() 等吗?

    我有 C 背景 但现在主要使用 VB Net 在我看来 上述函数 以及其他函数 例如 UCase LCase 等是 VB6 及之前版本的遗留物 在 VB Net 中使用这些函数是不受欢迎的 还是纯粹取决于个人喜好 我个人的偏好是远离它们 但
  • 理解高斯混合模型的概念

    我试图通过阅读在线资源来理解 GMM 我已经使用 K 均值实现了聚类 并且正在了解 GMM 与 K 均值的比较 以下是我的理解 如有错误请指出 GMM 类似于 KNN 在这两种情况下都实现了聚类 但在 GMM 中 每个簇都有自己独立的均值和
  • 访问图像的 Windows“标签”元数据字段

    我正在尝试进行一些图像处理 所以现在我正在尝试读取图像 exif 数据 有 2 个内置函数可用于读取图像的 exif 数据 问题是我想读取图像标签 exifread and imfinfo这两个函数都不显示图像标签 Is there any
  • 如何在 MATLAB 中绘制 3D 曲面图?

    我有一个像这样的数据集 0 1 0 2 0 3 0 4 1 10 11 12 13 2 11 12 13 14 3 12 13 14 15 4 13 14 15 16 我想在 matlab 中绘制 3D 曲面图 使列标题位于 y 轴 行标题
  • 如何在文本集中创建所有字符组合?

    例如 我有这样的文本集 第 1 栏 a b 第 2 栏 l m n 第 3 栏 v w x y 我想将它们组合起来以获得如下输出 alv alw alx aly amv amw amx amy 这将输出 24 种文本组合 如果我只使用前两列
  • glpk.LPX 向后兼容性?

    较新版本的glpk没有LPXapi 旧包需要它 我如何使用旧包 例如COBRA http opencobra sourceforge net openCOBRA Welcome html 与较新版本的glpk 注意COBRA适用于 MATL

随机推荐

  • SELECT 滚动的 Javascript 控制

    首先 我不是 Javascript 专家 我想向我正在使用的选择框添加一项功能 当添加新项目时 该功能会自动滚动到末尾 但前提是用户尚未向上滚动 基本上 当用户查看较旧的条目时 我不希望新到达的条目将位置固定到选择列表的末尾 但是 如果用户
  • 将网络拆分为多个前缀的子网

    我正在使用netaddr模块并试图弄清楚如何 是否可以将网络拆分为不同前缀的子网 例如 将 16 拆分为 X 23 和 Y 24 据我所知 我们可以使用subnet函数将网络分割为 X 个给定前缀 但只需要 1 个前缀 上面的代码将从 16
  • 垂直对齐内联柔性元素

    我试图在同一个 div 中垂直对齐 3 个不同的 inline flex 元素 但最后一个不符合预期 container height 100px width 100 background color blue container left
  • Android MPchart Piechart Legend set自定义错误

    我正在使用 MPchart 饼图 当我设置自定义图例数组时 它不接受该数组 我的代码 Legend l chart getLegend l setCustom ColorTemplate VORDIPLOM COLORS new Strin
  • Django Rest Framework 多个嵌套可写序列化器

    我正在尝试使用 django Rest 框架实现多个嵌套的可写序列化器 我已阅读可用的文档http www django rest framework org api guide serializers writable nested re
  • 如何在 lme4 中获取收敛错误消息或最大梯度

    使用 lme4 进行随机效应模型后如何获得最大梯度值 默认情况下 如果大于0 002就会显示 但我想制作一个如下所示的原始函数 它需要一个最大梯度的返回值 无论该值是否大于0 002 做原始模型 MM lt lmer Y 1 X 1 clu
  • 如何在matplotlib中绘制单个点

    我想在图表上绘制一个点 但似乎它们都需要绘制为列表或方程 我需要像这样绘制ax plot x y 我的位置会出现一个点x y我的图表上的坐标 import matplotlib pyplot as plt from mpl toolkits
  • NoSQL 用例场景或何时使用 NoSQL [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 尽管有这么多的炒作 但似乎很难找到关于何时使用它的可靠信息 所以我提出以下问题 如果这些问题真的很愚蠢 我很抱歉 我应该对用户数据使用 NoSQ
  • 如何运行后台进程来响应 VSTO Office 加载项中的选择更改事件?

    我有一个 VSTO 应用程序级加载项 带有我自己的自定义任务窗格 我试图拦截 SelectionChange 事件 并在自定义任务窗格中显示与选择相关的信息 我确实知道如何同步执行此操作 但是 获取要显示的信息的过程很慢 并且我不想在获取信
  • 四舍五入浮点数:精确打印小数点后两位数字,四舍五入到最接近的小数位

    我们如何在 C C 中对浮点数进行四舍五入 以精确打印小数点后四舍五入到最接近的小数位的两位数字 举例来说 当我使用时 printf 2f 12 555 cout lt
  • 如何在 Clojure 中以字符串形式获取函数名称?

    在 Clojure 中如何以字符串形式获取函数名称 到目前为止 我所拥有的看起来并不接近惯用 defn fn name f first re find lt str f defn foo fn name foo returns foo ED
  • 如何在DataGridTextColumn的工具提示中显示IDataErrorInfo的错误?

    对于文本框 当我将以下 xml 放入 App xml 时效果很好
  • NameError:未定义全局名称

    我在 Mac OS X 上使用 Python 2 6 1 我有两个简单的 Python 文件 如下 但是当我运行时 python update url py 我在终端上得到 Traceback most recent call last F
  • 将一个派生类转换为另一个派生类而不更改基类

    我有几个孩子班级都有同一个家长 每个子类都可以使用父对象中包含的一些数据来构造 我想使用基础对象中包含的信息将一个孩子转换为另一个孩子 不修改基础对象 目前它的实现如下例所示 include
  • jqgrid:如何发送和接收行数据保持编辑模式

    jqGrid 有员工姓名和员工 ID 列 If employee name已更改 应调用服务器验证方法来验证名称 当前行列应根据此方法返回的数据进行更新 If employee id已更改 应调用服务器验证方法来验证 id 当前行列应根据此
  • 网络配置和机器配置

    Web 配置和机器配置有什么区别 小心 配置文件有一个层次结构 applicationHost config是顶级 IIS 配置文件 Next is machine config 这是顶级的 特定于服务器的配置文件 接下来是服务器级别web
  • Spark在本地运行但在YARN中运行时找不到文件

    我一直在尝试提交一个简单的 python 脚本来使用 YARN 在集群中运行它 当我在本地执行作业时 没有问题 一切正常 但当我在集群中运行它时 它失败了 我使用以下命令执行了提交 Spark submit masteryarn deplo
  • 动画 gif 在使用 MKOverlayRenderer 的 MKMapView 叠加中不起作用

    我正在尝试在叠加层中显示动画 gifMKMapView 覆盖层是使用以下命令创建的MKOverlayRenderer 为了在 iOS 7 中制作 gif 动画 我使用UIImage animatedGIF已发布类别here https gi
  • 从 RNetLogo 加载带有扩展的 Netlogo 模型

    我正在尝试使用 RNetLogo 在无头模式下加载 Netlogo 模型 该模型使用 rnd 扩展 该扩展通过以下方式添加到模型中extensions rnd 如果我尝试加载模型NLLoad model path 我收到此错误 NLLoad
  • 软件和与外部设备串行通信的波特率限制

    我使用 USB 端口作为虚拟 COM 端口运行 以使用 MATLAB 或 Visual Basic 6 实现与外部设备的串行通信 我面临波特率限制 具体取决于我用于与设备通信的软件 MATLAB 2018a 没有问题 因为它可以设置高波特率