写数据流wirh定义每个字节之间的延迟

时间:2018-03-26 12:49:08

标签: c usb delay ftdi writefile

我需要将一个恒定的数据流从计算机发送到设备。该设备连接到ftdi芯片,ftdi通过usb与计算机进行通信。不幸的是,在全速运行时,器件需要在每个传输的字节之间延迟。

问题:

目前我正在使用带有手写延迟的WriteFile()(这只是一个示例,而不是完整的代码):

for (i = 0; i < size; i++)

{

    WriteFile( m_hIDComDev, (LPSTR) &ucByte, 1, &dwBytesWritten, &m_OverlappedWrite )

    QueryPerformanceCounter(&start);

    QueryPerformanceCounter(&stop);

    while (double(stop.QuadPart - start.QuadPart) < DELAY)
    {
        QueryPerformanceCounter(&stop);
    }
}

根据机器的情绪,此延迟在100 us和近1 s之间有所不同。我使用Scope来显示ftdi输出的延迟。

问题:

有没有办法在每个字节之间配置一个定义的延迟的com端口或ftdi? 用过多的单词,摆脱“for”并使用WriteFile与数据的大小而不是1。

或者,有没有人知道不同的方式,哪个适合?

限制:

整个计划应该进行时间优化。该器件可以230.4kBaud运行。以较低的速度(38,4k波特)运行已经解决了这个问题。但是,总时间太长。

使用Visual Studio在C中编程。

0 个答案:

没有答案