我正在高频采样,需要通过 UART 从我的 Arduino 中传输 10 位 ADC 值。
默认情况下,它使用每个字符一个字节。因此,如果执行模拟读取会产生“612”的值,它将通过 UART 发送“6”作为一个字节,“1”作为一个字节,“2”作为一个字节,行终止符作为最后一个字节。
鉴于我的采样率被这种通信截断,重要的是它尽可能高效和统一,所以我试图强制它使用两个字节来传输该数据,不管实际数据是什么(通过默认使用三个字节传输“23”,四个字节传输“883”,五个字节传输“1001”)。
目前,我正在做这样的事情,这是我发现的最好的方法:
int a = 600; //Just an example
char high = (char)highByte(a);
char low = (char)lowByte(a);
Serial.print(high);
Serial.println(low);
目前,无论值如何,它都使用三个字节(包括 \n)。有没有更有效的方法?
只需用类似的东西打印它
Serial.print(foo, BIN);
根本不起作用。它实际上对 foo 的二进制表示的每一位都使用一个字节,这很愚蠢。