在使用ESP32 开发的过程中,遇到需要使用调试串口输出byte[] 数据的场景。
在byte[] 数组中,如果有数据值为0x0a (十进制为10),则实际输出为 0x0D,0x0A。 多了0x0D 这个数据。
查询得知,putchar(0x0a) 为输出换行符, 在ESP32 输出 换行时,前面会自动加上0x0D(回车符号)。从而造成,串口接收者,多收到一个数据。
解决方法:不要putchar 来打印byte[], 可以使用printf("%.2x",byte[]); 输出为16进制格式的字符串,串口接收者,要稍麻烦点,处理数据。