我在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
答案 0 :(得分:3)
您需要打印两个字节/字符,因此您可以使用格式字符串显式指定它:
xil_printf("Data: %c%c\n\r", char1, char2);
但首先你需要计算要打印的字节数。例如:
int char1 = (IRAM >> 8) & 0xff;
int char2 = IRAM & 0xff;
(可能切换char1&lt; - &gt; char2;我不确定你要打印它们的顺序)