小编Dus*_*tic的帖子

将字符串转换为MAC地址

在SPIFFS中的文件内,我将以"XX:XX:XX:XX:XX:XX"的形式保存有关mac地址的信息.当我读取文件时,我需要将它从STRING切换为十六进制值数组.

uint8_t* str2mac(char* mac){
  uint8_t bytes[6];
  int values[6];
  int i;
  if( 6 == sscanf( mac, "%x:%x:%x:%x:%x:%x%*c",&values[0], &values[1], &values[2],&values[3], &values[4], &values[5] ) ){
      /* convert to uint8_t */
      for( i = 0; i < 6; ++i )bytes[i] = (uint8_t) values[i];
  }else{
      /* invalid mac */
  } 
  return bytes;
}

wifi_set_macaddr(STATION_IF, str2mac((char*)readFileSPIFFS("/mac.txt").c_str()));
Run Code Online (Sandbox Code Playgroud)

但我在某处的代码中错了

当我AA:00:00:00:00:01输入文件时,我的ESP8266设置29:D5:23:40:00:00

我需要帮助,谢谢

c++ arduino esp8266 esp32

0
推荐指数
1
解决办法
2707
查看次数

标签 统计

arduino ×1

c++ ×1

esp32 ×1

esp8266 ×1