使用串口传输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