// 这段代码定义了一个名为str_to_hex的函数,该函数将一个字符串(str_in) 转换为十六进制数并存储在另一个字符串(hex_out)中。
// 函数接受三个参数:
// u8 *str_in:输入字符串的指针。
// u8 *hex_out:输出十六进制数的指针。
// u16 len:输入字符串的长度/2。
// 函数的主体是一个for循环,从i = 0开始,直到i < len。在每次迭代中,它使用sscanf函数从输入字符串中读取两个字符,并将其解析为十六进制数。然后将解析后的十六进制数存储在输出字符串的相应位置。
void str_to_hex(u8 *str_in, u8 *hex_out, u16 len)
{
for (int i = 0; i < len; i++)
{
sscanf((const char *)(&str_in[i * 2]), "%2hhx", &hex_out[i]);
}
}
// 这段代码定义了一个名为hex_to_str的函数,该函数将一个十六进制数组(hex_in)转换为一个字符串(str_out)。
// 函数接受三个参数:
// u8 *hex_in:一个指向十六进制数组的指针。
// u8 *str_out:一个指向输出字符串的指针。
// u16 len:输入数组的长度。
// 函数通过一个for循环遍历输入数组的每个元素。在循环内部,使用sprintf函数将当前元素转换为一个两位十六进制数,并将其存储在输出字符串中。具体来说,%02x表示以两位十六进制大写形式输出,不足两位时前面补0。最后,将转换后的字符串存储在str_out指针所指向的位置。
void hex_to_str(u8 *hex_in, u8 *str_out, u16 len)
{
for (int i = 0; i < len; i++)
{
sprintf((char *)(&str_out[i * 2]), "%02x", hex_int[i]);
}
}