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

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(使用前将#替换为@)

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

  • 如何加载具有可变文件名的 .mat 文件?

    select all mat files oar dir oar mat n oar name loop through files for l 1 length oar load pat oar l lt this is the mat
  • 在Matlab中选择图像上的像素时,索引指的是什么?

    当在Matlab中查看图像的单个像素时 该索引指的是什么 X Y 指的是像素的坐标 RGB 指的是颜色 但是关于索引是什么有什么想法吗 为了澄清一下 当我在 Matlab 中查看图形并使用数据光标选择一个点时 显示的三行是 X Y 指数 R
  • MATLAB 可执行文件太慢

    我使用以下命令将 MATLAB 程序转换为基于控制台的应用程序deploytool在 MATLAB 中 MATLAB m文件执行大约需要 2 秒 但在我将其转换为可执行文件并调用 exe 执行需要45秒 太长了 我想将 MATLAB 程序与
  • matlab部署工具到java包javac错误

    我正在尝试将我的程序包装为与 java 一起使用 我首先尝试了一个简单的 hello world 你好世界 m disp 你好世界 我使用了deploytool并选择了java包 当它到达这一行时 执行命令 javac verbose cl
  • 从筛查乳腺 X 光检查数字数据库 (DDSM) 获取数据

    我正在尝试以可读格式获取 DDSM 数据集 有谁有 DDSM heathusf 程序的工作版本 可以在 Linux 或 Windows 上正常运行吗 我知道 DDSM 的 jpeg 程序有一个适用于 linux 的工作版本 位于http w
  • 直方图均衡结果

    I am trying to code histogram equalization by my self but the results are different from the built in function in matlab
  • 在Matlab中对字符进行分组并形成矩阵

    我有 26 个字符 A 到 Z 我将 4 个字符组合在一起 并用空格分隔以下 4 个字符 如下所示 abcd efgh ijkl mnop qrst uvwx yz 我的Matlab编码如下 str abcdefghijklmnopqrst
  • Delphi - 如何获取 USB 可移动硬盘和记忆棒的列表?

    在我的应用程序 Delphi 中 我需要列出所有 USB 存储设备 这些可以是闪存棒or外部存储驱动器 有一个Jvcl成分JvDriveCombo 并且它有DriveType属性 问题是我是否选择DriveType Fixed那么除了外部驱
  • Python 或 C 语言中的 Matlab / Octave bwdist()

    有谁知道 Matlab Octave bwdist 函数的 Python 替代品 此函数返回给定矩阵的每个单元格到最近的非零单元格的欧几里得距离 我看到了一个 Octave C 实现 一个纯 Matlab 实现 我想知道是否有人必须用 AN
  • 使用 iTextSharp 5.3.3 和 USB 令牌签署 PDF

    我是 iTextSharp 和 StackOverFlow 的新手 我正在尝试使用外部 USB 令牌在 C 中签署 PDF 我尝试使用从互联网上挖掘的以下代码 Org BouncyCastle X509 X509CertificatePar
  • 在matlab中,如何读取python pickle文件?

    在 python 中 我生成了一个 p 数据文件 pickle dump allData open myallData p wb 现在我想在Matlab中读取myallData p 我的Matlab安装在Windows 8下 其中没有Pyt
  • Matlab的导入函数的范围是什么?

    我正在尝试将一些用 Matlab 编写的代码转换为独立的 编译的 Matlab 应用程序 然而 在出现一些奇怪的错误之后 我意识到代码大量使用了从路径中添加和删除的操作 以避免多次使用多个具有相同名称 但结果 计算不同 的函数这一事实 环顾
  • 串行 I/O 与 Windows/Windows CE 重叠/不重叠

    抱歉 这不是一个大问题 但更多的是帮助那些在这些特定问题上遇到问题的人 我正在解决的问题需要使用串行 I O 但主要在 Windows CE 6 0 下运行 然而 最近有人问我该应用程序是否也可以在 Windows 下运行 所以我开始着手解
  • 如何将数据传递给 MATLAB oncleanup 函数?

    我有一个编译好的 matlab 程序 可以自动调整机器参数 在调整周期结束时 我需要恢复一些原始设置 有时会发生意外错误 有时用户会发现调整算法未正常工作 因此应终止 使用 control C 如果发生可预测的错误 我可以使用 try ca
  • 如何在 MATLAB 编译的应用程序中运行外部 .m 代码? [复制]

    这个问题在这里已经有答案了 我有一个 MATLAB 项目 我使用 MCC 对其进行编译以获得单个可执行文件 然后我想知道外部程序员是否可以在 exe 中执行他的一些 m 文件 而无需重新编译整个项目 重点是提供一个应用程序 其他开发人员可以
  • 有没有办法将消息从 C#.NET 程序集(ActiveX)发送到 VB6 应用程序?

    本问答参考并可用于以下用途 目的 通过ActiveX dll从IE浏览器发送消息到vb6应用程序 从 ActiveX dll 向 vb6 应用程序发送消息 从 C net dll 发送消息到 vb6 应用程序 我读过了本文 http www
  • MATLAB - 通过垂直连接子矩阵重新排列矩阵

    我在执行以下任务时遇到问题 假设一个 3x6 矩阵 A 0 2787 0 2948 0 4635 0 8388 0 0627 0 0435 0 6917 0 1185 0 3660 0 1867 0 2383 0 7577 0 6179 0
  • 在 Matlab 中保存 Kinect 深度图像?

    通过使用 Kinect 我可以获得深度图像 其中每个深度图像像素存储相机和物体之间的距离 以毫米为单位 现在我想保存它们以便以后使用 最好的推荐是什么 我正在考虑将深度图像保存为图像 jpg png等 然而 该值通常是从50毫米到10000
  • 使用简单矩阵乘法时出错

    我在一次简单的乘法运算中偶然发现了一个错误 这让我感到非常惊讶 我一直以为这里发生了什么 只为矩阵乘法 http www mathworks nl help matlab matlab prog operators html x 2 y z
  • Deploytool for MATLAB R2013b 不起作用,发生了什么变化?

    多年来我一直在使用集成deploytool为我的同事创建易于分发的 exe 文件 我几天前安装了R2013b 但无法使用deploytool不再了 尝试打包时的日志文件给出了以下内容 ant

随机推荐

  • 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 没有问题 因为它可以设置高波特率