1

for ループ内で試行xil_printf()し、uart を介して SendBuffer に供給しています。整数の代わりに文字を出力するにはどうすればよいですか? 印刷しているのは16進数だけです...

uint32_t IRAM;
for(Index=0; Index<tsize; Index++){
  int sb = Index*sizeof(uint32_t);
  IRAM = XIo_In32(RAMADD+sb);
  xil_printf("Data: %08x\n\r",IRAM);
}

これは16進文字を出力します:

Data: 00004241
Data: 00004443
Data: 00004645
Data: 00004847

私は試した :

xil_printf("Data: %08c\n\r",IRAM)

そして、それは単一の文字を出力します:

Data: A
Data: C

以下を印刷するにはどうすればよいですか (16 進文字 4241 を AB に、4443 を CD に変換するなど...)。

Data: AB
Data: CD
4

1 に答える 1

3

2 バイト/文字を出力する必要があるため、書式文字列で明示的に指定できます。

xil_printf("Data: %c%c\n\r", char1, char2);

ただし、最初に出力するバイト数を計算する必要があります。例えば:

int char1 = (IRAM >> 8) & 0xff;
int char2 = IRAM & 0xff;

(おそらく char1 <-> char2 を切り替えます。どの順序で印刷したいかわかりません)

于 2013-11-13T21:03:21.463 に答える