Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arduino 优化转换函数(字符串到字节)_Arduino - Fatal编程技术网

Arduino 优化转换函数(字符串到字节)

Arduino 优化转换函数(字符串到字节),arduino,Arduino,Hy社区,我正在和arduino一起写一个程序。我已经写了一个函数,转换字节字符串,但它占用了这么多内存。我的问题是,是否有一个函数我可以使用,它不会占用我的arduino上太多的内存。 我把代码贴在下面 byte strConv(String str) { byte a = 0; char n = 2; char g = 3; char stringa1; char stringa2; char m; stringa1 = str.charAt(n); st

Hy社区,我正在和arduino一起写一个程序。我已经写了一个函数,转换字节字符串,但它占用了这么多内存。我的问题是,是否有一个函数我可以使用,它不会占用我的arduino上太多的内存。 我把代码贴在下面

byte strConv(String str)
{
  byte a = 0;
  char n = 2;
  char g = 3;
  char stringa1;
  char stringa2;

  char m;

  stringa1 = str.charAt(n);
  stringa2 = str.charAt(g);

  m = costanti (stringa1);

  if (m >= '0' && m <= '9'  || m >= 'A' && m <= 'F') {
    a += m;
  } else {
    a += m;
  }
  a = a << 4;
  m = 0;
  m = costanti (stringa2);
  if (m >= '0' && m <= '9' || m >= 'A' && m <= 'F') {
    a += m;
  } else {
    a += m;
  }
  return a;
}

我可以在一个新的优化函数中减少这两个函数吗?

据我所知,您需要这样的函数:

char strConvString str { 如果str.length>2 return-1;//返回对您有意义的无效 返回static_caststrtolstr.c_str,NULL,16; } 字符串myString26,十六进制;//为您创建字符串1A 无效设置{ Serial.begin9600; } 空穴环{ Serial.printlString:\+myString+''; char val=strconvmysting;//再次给出26 Serial.printint:; Serial.printlstatic_castval; 延迟1000; } 这提示我:

String: "1a"
int: 26
String: "1a"
int: 26
...

你想让它做什么?将字符串的十六进制值转换为整数?像这样:convert0x1A=26?如果是这样,您可以看看这里:我必须转换字节中的字符串
String: "1a"
int: 26
String: "1a"
int: 26
...