Herramientas de usuario

Herramientas del sitio


desarrollo:edu-ciaa:edu-ciaa-nxp:python:bibliotecas:modulo-pyb-uart

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

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki