我在自己设计中使用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循环中读取第二次时(在关闭/重新打开文件并在代码中执行其他操作之后),它再次进入第一个位置。 所以我想保存在休息句之前找到的最新位置。我已经尝试过每次迭代都使用seek函数
while( (readedBytes = FSfread((void *)&c,sizeof(char),1,ephpubData->filetouart->seek) != 0) && G_RUNNING && ephpubData->readedBytes < 2520)
但它给了我一个错误。
答案 0 :(得分:0)
很抱歉,但我发现了这个错误。
我正在做的代码中的某处:
FSfseek( ephpubData->filetouart , 0 , SEEK_SET );
将读数位置设为0。