如何正确连接Arduino与Python?代码报TypeError错误求助
Arduino与Python连接及TypeError错误解决
错误原因
你代码里的arduinoData.in_waiting()写法错误——in_waiting是pyserial库中Serial对象的属性(返回当前待读取的字节数,是个整数),不是可调用的方法,不能加括号执行,这就是触发TypeError: 'int' object is not callable的根本原因。
修正后的代码
from serial import Serial import time # 初始化串口连接,注意端口号和波特率要和Arduino代码匹配 arduinoData = Serial("com3", 115200) time.sleep(1) # 给串口连接留初始化时间 while True: # 正确读取in_waiting属性,不加括号 while arduinoData.in_waiting == 0: pass datapacket = arduinoData.readline() print(datapacket)
正确连接的注意事项
- 确认串口端口号正确:在Arduino IDE的「工具→端口」里查看当前Arduino对应的端口,Windows下是COMx格式,Mac/Linux下是
/dev/tty.usbmodemxxx这类格式 - 波特率必须和Arduino代码中的
Serial.begin(xxx)参数完全一致 - 运行Python代码前,关闭Arduino IDE的串口监视器,避免端口占用冲突
- 确保已安装pyserial库:执行
pip install pyserial完成安装 - Arduino端需上传能持续发送数据的代码,示例如下:
void setup() { Serial.begin(115200); } void loop() { Serial.println("Hello from Arduino!"); delay(1000); }
内容的提问来源于stack exchange,提问作者Tejasisnothere
相关产品推荐
相关产品推荐

