desarrollo:edu-ciaa:edu-ciaa-nxp:python:bibliotecas:modulo-pyb-uart
Tabla de Contenidos
Soporte UART y RS485: Clase UART
La clase UART permitirá crear objetos que representan los módulos UART y RS845 de la placa.
Constructor
La clase posee un constructor que recibe como argumento el número de UART que controlará. Los valores posibles son
- 0: RS485
- 3: UART
Métodos
- init(): Recibe la configuración de la UART, la cual consta de 1 argumento obligatorio(baudrate) y 9 opcionales:
- baudrate : Obligatorio. Define la velocidad de comunicación
- bits: Solo se soporta el valor 8
- parity: Indica la paridad: None: sin paridad. 1: Impar. 2: Par. 3: F1. 4: F2
- stop: Indica la cantidad de bits de stop (1 o 2)
- timeout: En el modo recepción por paquete, indica el tiempo que debe pasar para que se reconozca la recepción de una trama. Indicado en ms
- timeout_char: Tiempo entre envio de bytes indicado en ms.
- read_buf_len: En el modo recepción por paquete, tamaño del buffer de recepción. (Max 2048)
- packet_mode: Indica si la recepcíon será por byte o por trama. True: Por trama. False: Por byte.
- packet_end_char: En el modo recepción por paquete, espera este valor para detectar un fin de trama.
- write(buff): Envía una trama por la UART. buff puede ser un bytearray o un string.
- writechar(ch): Envía un caracter por la UART
- get_baudrate(): Devuelve el baudrate configurado
- any(): Devuelve True si se recibió un byte/trama
- readchar(): Espera el tiempo “timeout” para leer un byte recibido. En el caso de que no haya nada para recibir, devuelve -1, de lo contrario devuelve el byte recibido.
- read([nBytes]): Espera el tiempo “timeout” y devuelve un bytearray con los datos recibidos. En forma opcional se puede indicar un máximo de bytes a recibir.
- readall(): Espera el tiempo “timeout” y devuelve un bytearray con los datos recibidos.
- readinto(buf[, nbytes]): Espera el tiempo “timeout” y carga los datos recibidos en el objeto bytearray pasado como primer argumento, el forma opcional se puede indicar un máximo.
Ejemplo 1, envío y recepción en modo byte
import pyb uart = pyb.UART(3) uart.init(115200,bits=8, parity=None, stop=1,timeout=500, timeout_char=1, read_buf_len=64) uart.write("Hola mundo") while True: if uart.any(): print("hay data:") data = uart.readall() print(data)
Ejemplo 2, envío y recepción en modo trama
Se agregó un modo de recepcion por “paquete” en donde la trama que llega se almacena en un buffer interno y luego el metodo “any()” devuelve True. Utilizando el metodo “readall()” se obtiene la trama completa. Para habilitar la recepcion por paquete se deben agregar el argumento “packet_mode” en True al final del metodo “init()”.
uart.init(115200,bits=8, parity=None, stop=1,timeout=200, timeout_char=1, read_buf_len=64,packet_mode=True)
desarrollo/edu-ciaa/edu-ciaa-nxp/python/bibliotecas/modulo-pyb-uart.txt · Última modificación: 2016/12/18 20:44 por egigliotti