I don't know why serial communication data is like this. Please help me

I don’t know why serial communication data is like this. Please help me.
Seeeduino XIAO Board.

This is the source code.

void setup() {
Serial1.begin(115200);
while (!Serial1);
}

void loop() {
for(int i=0;i<256;i++){
byte ch=i;
Serial1.write(&ch,1);
}
delay(1000);
}

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

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

Why is this? I’d appreciate it if you could help me.

Serial1.write(ch, 1) … not &ch which takes the address of the variable ch from the stack as the value to print

I used Realterm on my Windows 10 workstation with your code with Serial1 Tx output on pin D0 (through a 3.3V logic-to-USB converter) and got what I expected.

Your output almost looks like bits are inverted and skips every other character. Some terminal programs might give that output. How did you connect your XIAO Serial1 output to your workstation? (Requires logic inversion, which is done in every serial converter I have ever bought or built.)

My first attachment is with “normal” settings in Realterm. Just for kicks, I told Realterm to invert the bits and the result is shown in my second attachment.

My setup: Arduino 1.8.16, Seeeduino XIAO, Realterm 2.0.0.70

Regards,

Dave

Footnote to ricksorensen: The form used by the OP is correct. The first argument is pointer to char. This can be the name of a char array or can be the address of a char variable.

Thanks for reminder on C++ overloading … I had completely forgot.