簡體   English   中英

printf in microblaze for hex to char

[英]printf in microblaze for hex to char

我在for循環中嘗試xil_printf()並通過uart將其提供給SendBuffer。 如何打印字符而不是整數? 所有它是打印是十六進制數...

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);
}

這打印十六進制字符:

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

我試過了 :

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

它打印單個字符:

Data: A
Data: C

如何打印以下內容(將十六進制字符4241轉換為AB,4443轉換為CD等...)?

Data: AB
Data: CD

您需要打印兩個字節/字符,因此您可以在格式字符串中明確指定它:

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

但首先需要計算要打印的字節數。 例如:

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

(可能切換char1 < - > char2;我不確定你要打印它們的順序)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM