Si el paquete serial
que está utilizando es pySerial, toma nota de la definición de la Serial.read()
method:
read(size=1)
Parámetro: tamaño - Número de bytes para leer.
Devoluciones: Bytes leídos desde el puerto.
Leer bytes de tamaño desde el puerto serie. Si se establece un tiempo de espera, puede devolver menos caracteres según lo solicitado. Sin tiempo de espera, bloqueará hasta que se lea el número solicitado de bytes.
cambiado en la versión 2.5: devuelve una instancia de bytes cuando esté disponible (Python 2.6 y posteriores) y str lo contrario.
A pesar de que está intentando procesar byte
objetos, es posible (dependiendo de la versión de Python) se manejo str
o bytes
objetos (array). Estos objetos no se corresponden necesariamente con valores enteros.
Incluso cuando se recibe byte
objetos de read()
, el mayor entero sin signo será 255. Comparando con value
400 no tiene sentido. Intente encontrar el tipo de los objetos devueltos con un resultado de depuración simple.
print type(value)
Si usted necesita para manejar un objeto str
, comprobar el uso de ord()
para la conversión.
(La sugerencia flush
se refiere a la pregunta original, que usó print
, no).
Consulte how-to-flush-output-of-python-print y pruebe el shell de la línea de comandos, no el IDE, que puede afectar al almacenamiento en búfer de salida.
Podemos tener un ejemplo de lo que está haciendo frente a lo que se puede esperar? – James
Bueno, lo estoy ejecutando en el Wing Python Shell y solo se mantiene en "Evaluating blablah.py" - en realidad nunca muestra ningún valor. Luego, cuando desenchufo el USB del arduino, aparecen los valores. Como si no se registraran hasta que lo hice. – jakke34
Suponiendo que ser.read() realmente devuelve Tkinter no va a mostrar nada a menos que se invoque Tkinter.Frame (... Tk() ...). Mainloop(). – msw