首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FT_Read函数缓冲区

FT_Read函数缓冲区
EN

Stack Overflow用户
提问于 2014-12-14 07:04:47
回答 1查看 637关注 0票数 0

我正在尝试使用DX22库和FTDI USB-UART与恩智浦芯片进行交互。我在C中创建一个缓冲区时遇到了问题,这个缓冲区获取所有可用的数据,将其附加到一个字符串,然后继续执行程序。所有来自恩智浦芯片的数据都应以"CR LF“结尾。我是否应该创建一个函数来搜索传入的数据并构造一个字符串,以"CR LF“结束?

代码语言:javascript
复制
while (FT_Read != FT_OK)
    {
    if (RxBytes > 0) {
        FT_status = FT_Read(handle, RxBuffer, RxBytes, &BytesReceived);
        if (FT_status == FT_OK) {
            printf("RX: %s\n", RxBuffer);
        }
        else {
            printf("RX buffer empty.\n");
        }

    }
    else {
        break;
    }
EN

回答 1

Stack Overflow用户

发布于 2014-12-14 17:41:16

一般来说,可以,但CR和LF可能会在不同的Read调用中到达,因此您必须考虑到这一点。使用逐字节状态机来处理流链路lile serial/TCP上协议并不少见。

注意:

printf("RX:%s\n",RxBuffer);

假定缓冲区包含的内容是以null结尾的字符串。这通常是不太可能的,所以使用'BytesReceived‘作为索引,在数据的末尾插入一个null,并确保缓冲区始终包含足够的空间。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27464583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档