0

我试图清除 FT201X I2C-Slave 的 FX-Buffer。不知何故,它似​​乎不起作用,即使在调用 purge-function 之后,master 仍然读取旧数据集。我使用 C++(Visual Studio 2019)和 D2XX-Programmers-Guide 中给出的 D2XX 函数。

我确实尝试在清除命令之前和之后使用 StopInTask 和 RestartInTask 函数,但它仍然没有清除我的缓冲区。

status = FT_StopInTask(fthandle);
    if (status != FT_OK) {
        printf("status not ok %d\n", status);
    }
    status = FT_Purge(fthandle, FT_PURGE_TX); // Purge Tx buffer
    if (status != FT_OK) {
        printf("status not ok %d\n", status);
    }
    status = FT_RestartInTask(fthandle);
    if (status != FT_OK) {
        printf("status not ok %d\n", status);
    }

我什至尝试FT_W32_PurgeComm(fthandle, PURGE_TXABORT | PURGE_TXCLEAR)过,即使函数返回 true,缓冲区似乎仍然没有被清除。

4

1 回答 1

0

不知何故FT_Purge(fthandle, FT_PURGE_RX)清除了两个缓冲区,存储来自主机的数据(通过 FT_Write 发送)的缓冲区以及存储来自外部 I2C-Master 的数据的缓冲区。将信号(值:10)映射RXF到 CBUS 引脚并读取引脚FT_GetBitMode以指示存储来自主机的数据的缓冲区是否为空。

于 2021-12-09T11:08:24.003 回答