@分享一个很好用的代码地址输出组件
代码如下
#define __is_print(ch) ((unsigned int)((ch) - ' ') < 127u - ' ')
void 在这里插入代码片hex_dump(const uint8_t *ptr, uint16_t buflen)
{
unsigned char *buf = (unsigned char *)ptr;
int i, j;
for (i = 0; i < buflen; i += 16) {
OSI_LOGI(0,"%08X: ", i);
for (j = 0; j < 16; j++) {
if (i + j < buflen) {
OSI_LOGI(0,"%02X ", buf[i + j]);
}
else {
OSI_LOGI(0," ");
}
}
OSI_LOGI(0," ");
for (j = 0; j < 16; j++) {
if (i + j < buflen) {
OSI_LOGI(0,"%c", __is_print(buf[i + j]) ? buf[i + j] : '.');
}
}
OSI_LOGI(0,"\n");
}
}
函数入参:
1.你要打印的字符串首地址,或者结构体的首地址
2.地址长度
结果便可以打印到终端上面
小伙伴学会了,赶紧去试试吧