0

我在自己设计的设计中使用 PIC32MX,一切正常。

现在我正在尝试实现一个功能,该功能基本上是按顺序从文件中读取的,直到找到某个字符帧,所以我正在做:

    while( (readedBytes = FSfread((void *)&c,sizeof(char),1,ephpubData->filetouart) != 0) && G_RUNNING && ephpubData->readedBytes < 2520){
    privData->txBuffer[privData->txBufferPos++] = c;
    ephpubData->readedBytes = ephpubData->readedBytes + readedBytes;
    if (privData->txBufferPos == TX_BUFFER_SIZE){
        if (verifyDate (task) == 1){
        *gpsState = GPS_STATE_VERIFY;
        ephpubData->count++;
        break;
        }
        FSfseek(ephpubData->filetouart , ephpubData->readedBytes , SEEK_SET);
        privData->txBufferPos = 0;
   }
}

当它第一次找到框架时(使用 verifyDate 函数)一切正常,它会中断句子。在 while 循环中第二次读取时(在关闭/重新打开文件并在代码中执行其他操作之后)它再次转到第一个位置。所以我想保存找到的最新位置,直到break语句。我已经尝试在每次迭代中使用 seek 函数

    while( (readedBytes = FSfread((void *)&c,sizeof(char),1,ephpubData->filetouart->seek) != 0) && G_RUNNING && ephpubData->readedBytes < 2520)

但它给了我一个错误。

4

1 回答 1

0

对不起,伙计们,但我发现了这个错误。

在我正在做的代码中的某处:

    FSfseek( ephpubData->filetouart , 0 , SEEK_SET );

它将读取位置设置为 0。

于 2015-12-23T15:24:18.153 回答