[英]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.