将字符串表示的MAC地址转换为unit8_t,Arduino

问题描述 投票:0回答:2

我目前正在开发 Arduino sketch,需要一种方法来转换以下 mac 地址:

const char *ss =“00:1E:C0:04:9F:F3”;

转换成unit8_t*,这样我就可以将它用作下面的network_set_MAC函数的参数:

/设置设备的MAC地址/ void network_set_MAC(uint8_t* mac);

关于如何在 Arduino IDE 中执行此操作有什么想法吗?

arduino data-conversion
2个回答
2
投票

自动将文本表示转换为机器可读的表示比看起来更难。这需要一些仔细的解析。

由于您将 MAC 地址硬编码到草图中,因此您无需担心这一点。您可以简单地将其写为十六进制文字数组:

uint8_t mac[] = {0x00, 0x1E, 0xC0, 0x04, 0x9F, 0xF3};

在 C++ 中,数组类型会愉快地衰减为指针,因此您应该能够像这样将其直接传递给函数:

network_set_MAC(mac);

0
投票

虽然已经很晚了,但这是唯一的选择

uint8_t mac[6];
char *macAddress="84:0D:8E:AA:5B:44";
sscanf(macAddress, "%X:%X:%X:%X:%X:%X", &mac[0], &mac[1], &mac[2], &mac[3], &mac[4], &mac[5]);
© www.soinside.com 2019 - 2024. All rights reserved.