将串口传入的数据转换为整数

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() 再次解码,结果将不正确。