[feat] 串口hex输出可选择是否补0

This commit is contained in:
2026-06-05 20:18:53 +08:00
Unverified
parent 60a9b9e97d
commit 3d47667c2f
3 changed files with 25 additions and 9 deletions
+23 -7
View File
@@ -32,15 +32,31 @@ void serial_write(String str) {
}
}
void serial_write_hex(UINTN val) {
void serial_write_hex(UINTN val, bool fill) {
char buf[19];
buf[0] = '0'; buf[1] = 'x';
for (SSINT32 i = 17; i >= 2; i--) {
UINTN digit = val & 0xF;
buf[i] = digit < 10 ? '0' + digit : 'A' + digit - 10;
val >>= 4;
buf[0] = '0';
buf[1] = 'x';
SSINT32 pos = 2;
if (val == 0) {
buf[pos++] = '0';
} else {
char tmp[17];
SSINT32 len = 0;
while (val) {
UINTN digit = val & 0xF;
tmp[len++] = digit < 10 ? '0' + digit : 'A' + digit - 10;
val >>= 4;
}
if (fill) {
while (len < 16) {
buf[pos++] = '0';
}
}
for (SSINT32 i = len - 1; i >= 0; i--) {
buf[pos++] = tmp[i];
}
}
buf[18] = '\0';
buf[pos] = '\0';
serial_write(buf);
}