将串口传入的数据转换为整数
Convert the incoming data from serial port to interger
我正在尝试通过 Arduino 将加速度计用作鼠标。来自串行端口的数据以字节为单位,我想将其转换为整数,以便我可以使用这些值来模拟我的鼠标。
这是我的代码:
import serial
import pydirectinput
pydirectinput.FAILSAFE = False
ser = serial.Serial('COM3', baudrate=115200, timeout=1)
while 1:
arduinoData = ser.readline().decode('utf-8')
print(arduinoData)
上面的代码将数据更改为字符串,但我想要整数形式的数据。
我尝试使用此代码将其转换为整数
data = int.from_bytes(arduinoData, byteorder='big')
但这给了我一些我无法使用的东西
3149066
3149066
3149066
3149066
3149066
3149066
3149066
3149066
3149066
我想要这种形式的:
2
3
4
5
5
6
6
7
7
8
8
9
10
11
12
13
14
15
16
16
上面是字符串值,我想要一个整数的确切值我不知道该怎么做,请帮助我。
只需使用 int()
而不是 int.from_bytes()
:
import serial
import pydirectinput
pydirectinput.FAILSAFE = False
ser = serial.Serial('COM3', baudrate=115200, timeout=1)
while 1:
arduinoData = ser.readline().decode('utf-8')
data = int(arduinoData)
print(data)
int.from_bytes()
需要二进制数据。如果您先用 .decode()
解码数据,然后尝试用 from_bytes()
再次解码,结果将不正确。
我正在尝试通过 Arduino 将加速度计用作鼠标。来自串行端口的数据以字节为单位,我想将其转换为整数,以便我可以使用这些值来模拟我的鼠标。
这是我的代码:
import serial
import pydirectinput
pydirectinput.FAILSAFE = False
ser = serial.Serial('COM3', baudrate=115200, timeout=1)
while 1:
arduinoData = ser.readline().decode('utf-8')
print(arduinoData)
上面的代码将数据更改为字符串,但我想要整数形式的数据。
我尝试使用此代码将其转换为整数
data = int.from_bytes(arduinoData, byteorder='big')
但这给了我一些我无法使用的东西
3149066
3149066
3149066
3149066
3149066
3149066
3149066
3149066
3149066
我想要这种形式的:
2
3
4
5
5
6
6
7
7
8
8
9
10
11
12
13
14
15
16
16
上面是字符串值,我想要一个整数的确切值我不知道该怎么做,请帮助我。
只需使用 int()
而不是 int.from_bytes()
:
import serial
import pydirectinput
pydirectinput.FAILSAFE = False
ser = serial.Serial('COM3', baudrate=115200, timeout=1)
while 1:
arduinoData = ser.readline().decode('utf-8')
data = int(arduinoData)
print(data)
int.from_bytes()
需要二进制数据。如果您先用 .decode()
解码数据,然后尝试用 from_bytes()
再次解码,结果将不正确。