gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 01:40:38 26 4
gpt4 key购买 nike

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

虚拟 COM 端口的驱动程序由 FTDI 制作,可以在此处找到: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。

How to send to the serial port by using Mscomm32.ocx

The following baud rate values are valid: 110, 300, 600, 1200, 2400, 4800, 9600 (default), 14400, 19200, 28800, 38400, 56000, 57600, 115200, 128000, 256000.

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

Serial port programming VB6 via Win32 API

Serial Port Communication

Serial port programming on Visual Basic with Windows API

grricks/vb6SerialAPI


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

D2XX Programmer's Guide

6.9 FT_W32_SetCommState
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

关于matlab - 软件和与外部设备串行通信的波特率限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55950692/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com