我正在使用 Python 3.2 尝试通过串口与 Arduino 通信。从文档中,我了解到 Arduino Serial.Read() 读取单个字节。但是,当我尝试实现这一点时, Serial.Read() 会读取我发送的所有数字。这是我的 Python 和 Arduino 的代码
例如,我有一个值 412 发送给 Arduino。
Python:
xCoordint = 412
xCoordConverted = "%03d" % (xCoordint)
xCoord = [int(i) for i in str(xCoordConverted)]
xSingleDigit0 = chr(int(xCoord[0] + 48))
xSingleDigit1 = chr(int(xCoord[1] + 48))
xSingleDigit2 = chr(int(xCoord[2] + 48))
ser.write (bytes(xSingleDigit0, 'UTF-8'))
ser.write (bytes(xSingleDigit1, 'UTF-8'))
ser.write (bytes(xSingleDigit2, 'UTF-8'))
阿杜诺:
char joinCharX[3] ;
int n_avail = Serial.available();
if(n_avail>0){
for (int i=0;i<3; i++){
joinCharX[i] = Serial.read();
}
int xCoords = atoi(joinCharX);
Serial.print(joinCharX[0]);
返回时的 joinCharX[0] 是 412 而不是 4。我想知道为什么会这样,如何让它一次读取 1 个单独的字节?