gpt4 book ai didi

c - microblaze 中的 printf 用于十六进制到 char

转载 作者:太空宇宙 更新时间:2023-11-04 02:06:40 24 4
gpt4 key购买 nike

我正在 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;我不确定您要以什么顺序打印它们)

关于c - microblaze 中的 printf 用于十六进制到 char,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19964066/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com