在我的 Python 代码中,之前尝试使用 com.in_waiting 来检查串口接收缓冲区中的字节数。然而,似乎系统对于 com.in_waiting 的调用产生了问题,导致了 OSError: [Errno 25] Inappropriate ioctl for device 错误。
针对这个问题:
使用超时机制替代 com.in_waiting: 考虑到在 Python 代码中的主循环中使用了 time.sleep(0.1),可以在这个时间间隔内等待串口设备发送数据,并在超时后尝试读取数据。这样,可以避免使用 com.in_waiting 方法,从而避免了与 ioctl 调用相关的问题。修改你的 Python 代码如下:
import time
import serial
#Set serial port initialized parameters
com = serial.Serial(
port='/dev/ttyAMA0',
baudrate=2000000