首页 > 其他分享 >arduino 使用String 替代不定长byte[]数组

arduino 使用String 替代不定长byte[]数组

时间:2023-10-04 10:34:02浏览次数:32  
标签:10 String arduino hh 串口 Serial byte

使用串口传输hex数据时,常用byte[]数组接收数据,若预先不能知道将要接收到数据的数量,那么byte[]数组的长度很难处理。偶尔想到用String对象来存储串口传输hex数据应当很方便,经测试,非常成功。

测试程序:

 String hh="";
 void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);
}

void loop() {
  
  delay(10); // this speeds up the simulation
    while (Serial.available()) {
    delay(3);  //delay to allow buffer to fill
    if (Serial.available() > 0) {
      char c = Serial.read();  //gets one byte from serial buffer
      hh += c; //makes the string readString
    }
  }
  if(hh.length()>0){
    Serial.println(hh.length());
    for (int i=0;i<hh.length();i++){
     Serial.print(i,HEX);Serial.print(":");Serial.println((byte)hh[i],HEX);
    }
    hh="";
  }
}

向串口传入0x00~0xff共256个数据,其结果串口输出:

256
0:0
1:1
2:2
3:3
4:4
5:5
6:6
7:7
8:8
9:9
A:A
B:B
C:C
D:D
E:E
F:F
10:10
11:11
12:12
13:13
14:14
15:15
16:16
17:17
18:18
19:19
1A:1A
1B:1B
1C:1C
1D:1D
1E:1E
1F:1F
20:20
21:21
22:22
23:23
24:24
25:25
26:26
27:27
28:28
29:29
2A:2A
2B:2B
2C:2C
2D:2D
2E:2E
2F:2F
30:30
31:31
32:32
33:33
34:34
35:35
36:36
37:37
38:38
39:39
3A:3A
3B:3B
3C:3C
3D:3D
3E:3E
3F:3F
40:40
41:41
42:42
43:43
44:44
45:45
46:46
47:47
48:48
49:49
4A:4A
4B:4B
4C:4C
4D:4D
4E:4E
4F:4F
50:50
51:51
52:52
53:53
54:54
55:55
56:56
57:57
58:58
59:59
5A:5A
5B:5B
5C:5C
5D:5D
5E:5E
5F:5F
60:60
61:61
62:62
63:63
64:64
65:65
66:66
67:67
68:68
69:69
6A:6A
6B:6B
6C:6C
6D:6D
6E:6E
6F:6F
70:70
71:71
72:72
73:73
74:74
75:75
76:76
77:77
78:78
79:79
7A:7A
7B:7B
7C:7C
7D:7D
7E:7E
7F:7F
80:80
81:81
82:82
83:83
84:84
85:85
86:86
87:87
88:88
89:89
8A:8A
8B:8B
8C:8C
8D:8D
8E:8E
8F:8F
90:90
91:91
92:92
93:93
94:94
95:95
96:96
97:97
98:98
99:99
9A:9A
9B:9B
9C:9C
9D:9D
9E:9E
9F:9F
A0:A0
A1:A1
A2:A2
A3:A3
A4:A4
A5:A5
A6:A6
A7:A7
A8:A8
A9:A9
AA:AA
AB:AB
AC:AC
AD:AD
AE:AE
AF:AF
B0:B0
B1:B1
B2:B2
B3:B3
B4:B4
B5:B5
B6:B6
B7:B7
B8:B8
B9:B9
BA:BA
BB:BB
BC:BC
BD:BD
BE:BE
BF:BF
C0:C0
C1:C1
C2:C2
C3:C3
C4:C4
C5:C5
C6:C6
C7:C7
C8:C8
C9:C9
CA:CA
CB:CB
CC:CC
CD:CD
CE:CE
CF:CF
D0:D0
D1:D1
D2:D2
D3:D3
D4:D4
D5:D5
D6:D6
D7:D7
D8:D8
D9:D9
DA:DA
DB:DB
DC:DC
DD:DD
DE:DE
DF:DF
E0:E0
E1:E1
E2:E2
E3:E3
E4:E4
E5:E5
E6:E6
E7:E7
E8:E8
E9:E9
EA:EA
EB:EB
EC:EC
ED:ED
EE:EE
EF:EF
F0:F0
F1:F1
F2:F2
F3:F3
F4:F4
F5:F5
F6:F6
F7:F7
F8:F8
F9:F9
FA:FA
FB:FB
FC:FC
FD:FD
FE:FE
FF:FF

  

标签:10,String,arduino,hh,串口,Serial,byte
From: https://www.cnblogs.com/chengwh/p/17742000.html

相关文章

  • mybatis出现错误 java lang NumberFormatException:For input string:A1
    使用mybatis,当使用map传参并且在iftest判断时使用map中所传的参数时,可能会产生如题的报错,具体报错信息见下图:分析这个错误,自己调试也找过度娘,“坚信”自己代码并没问题,但是问题始终无法解决。最后在一个帖子看到说iftest判断时,传入的参数跟匹配的值类型必须一致,于是调整了自己代......
  • Go - Creating JSON Data Byte Arrays from Structs
    Problem: YouwanttocreateJSONdatafromastruct.Solution: Createthestructsthenusethejson.Marshalorjson.MarshalIndenttomarshalthedataintoaJSONsliceofbytes. funcmain(){person:=struct{}data,err:=......
  • 火山引擎 ByteHouse:如何提升 18000 节点的 ClickHouse 可用性?
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群ClickHouse是业内被广泛使用的OLAP引擎。当集群规模过大时,ClickHouse则面临使用局限性的问题。如何提升ClickHouse的可用性,成为困扰广大开发者的难题之一。目前,字节跳动内部的ClickHouse......
  • 火山引擎 ByteHouse:如何提升 18000 节点的 ClickHouse 可用性?
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 ClickHouse是业内被广泛使用的OLAP引擎。当集群规模过大时,ClickHouse则面临使用局限性的问题。如何提升ClickHouse的可用性,成为困扰广大开发者的难题之一。 目前,字节跳动内部的Cl......
  • Arduino IDE1.8.3安装
              ......
  • 前端JSON.stringify,JSON.parse函数
    JSON.stringify将对象转为JSON字符串;JSON.parse将JSON字符串转为对象;对象:{productId:129}JSON字符串:"{\"productId\":129}"***JSON使用场景***1. localStorage/sessionStorage存储对象  localStorage/sessionStorage只可以存储字符串,当我们想存储对象的时候,需要使用JSON.s......
  • [CF1654F] Minimal String Xoration
    MinimalStringXoration有点智慧但不是特别智慧反正是我达不到的智慧。打表可以看出长度为\(2^x\)的\(i\oplusk\)出现次数为\(2^{n-k}\)。进一步发现,设\(f(k,x)\)当前选取k时,数列前\(2^k\)的下标。则\(f(k,x)=f(k,x-1)+f(k\oplus{2^{x-1}},x-1)\)因为对于\(......
  • String字符串经典问题
    publicclassExample{Stringstr=newString("good");char[]ch={'a','b','c'};publicstaticvoidmain(Stringargs[]){Exampleex=newExample();ex.change(ex.str,ex.ch);......
  • string_list_map_date_dart
    title:DartString、List、Map、Date常用方法小结tags:[Flutter,Dart,常用方法小结]categories:常用方法keywords:常用方法小结,string,list,map,date,dartdescription:dart常用方法小结hot:truedate:2020-08-1315:08:00{%noteinfono-icon%}  今日心情......
  • string_array_object_date_php
    title:PHPString、Array、Object、Date常用方法小结tags:[PHP,常用方法小结]categories:常用方法keywords:常用方法小结,string,array,object,date,phpdescription:php常用方法小结Others:truedate:2020-07-2209:08:00{%noteprimaryno-icon%}  大自然的......