清除 FT201X I2C-Slave 的内部发送缓冲器
Posted
技术标签:
【中文标题】清除 FT201X I2C-Slave 的内部发送缓冲器【英文标题】:Purging the internal transmit buffer of FT201X I2C-Slave 【发布时间】:2022-01-03 13:44:53 【问题描述】:我正在尝试清除 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,缓冲区似乎仍然没有被清除。
【问题讨论】:
使用 FT_SetLatency、FT_SetUSBParameters 和 FT_SetTimeouts 似乎有所帮助,但我仍然无法始终如一地清除缓冲区。 【参考方案1】:不知何故FT_Purge(fthandle, FT_PURGE_RX)
清除了两个缓冲区,即存储来自主机(通过 FT_Write 发送)的数据的缓冲区以及存储来自外部 I2C 主控器的数据的缓冲区。将信号 RXF
(值:10)映射到 CBUS 引脚并使用 FT_GetBitMode
读取引脚可以指示存储来自主机的数据的缓冲区是否为空。
【讨论】:
以上是关于清除 FT201X I2C-Slave 的内部发送缓冲器的主要内容,如果未能解决你的问题,请参考以下文章
读取Colaso ft Packet Player用Qt发送的网络数据