我能读取数据正常。数据是一系列记录,每个记录以“\ r \ n”作为终止符结尾,然后数据流以“\ r \ n”结尾。第一条记录完美,但其余记录缺少第一个X字符。 X也不会改变。数据来自调制解调器。我错过了这个例程以读取AVR上的uart数据
c = UART0_RxChar();
response[0]=c;
i=0;
rec=0;
while((c=UART0_RxChar()) != CR)
{
response[i++]=c;
while ((c=UART0_RxChar()) != CR)
{
response[i++]=c;
}
rec++;
UART1_Printf("Record %d %s", rec, response);
UART1_Printf("\n\n");
memset(response,0,strlen(response));
i=0;
AT_ASSERT(UART0_RxChar() == LF)
}
AT_ASSERT(UART0_RxChar() == LF)
// Finished
坏数据接收
Record 1 7854122,4,2017-04-11 00:00,2017-04-11 8:09,29342441,,,,,,,0,0,0,0,
Record 2 705-03 13:15,18958737,TRK 23564,,,,BOL 327867,,0,0,0,0,
Record 3 7,BOL 327867,,0,0,0,0,
Record 4 717-05-03 23:59,38580000,TRK 23564,,,,BOL 327867,,0,0,0,0,
Record 5 7,BOL 327867,,0,0,0,0,
Record 6 717-05-05 23:59,86340000,TRK 23564,,,,BOL 327867,,0,0,0,0,
Record 7 7,BOL 327867,,0,0,0,0,
实际数据
7854122,4,2017-04-11 00:00,2017-04-11 08:09,29342441,,,,,,,0,0,0,0,
7854122,1,2017-04-11 08:09,,0,,,,,,,0,0,0,0,
7854122,4,2017-05-03 08:00,2017-05-03 13:15,18958737,TRK 23564,,,,BOL 327867,,0,0,0,0,
7854122,1,2017-05-03 13:15,2017-05-03 13:16,70332,TRK 23564,,,,BOL 327867,,0,0,0,0,
7854122,3,2017-05-03 13:16,2017-05-03 23:59,38580000,TRK 23564,,,,BOL 327867,,0,0,0,0,
7854122,3,2017-05-04 00:00,2017-05-04 23:59,86340000,TRK 23564,,,,BOL 327867,,0,0,0,0,
好吧,我认为这正是问题所在,但我从未在avr上设置过接收缓冲区。我正在研究。 – Eddie