• Pyboard基本功能---UART


    UART

    UART(通用异步收发传输器)的简称,在单片机和嵌入式系统中,串口(UART)一直都是非常重要的外设。虽然串口的速度并不快,但是因为它使用简单(串口可能是两个芯片之间传输数据最简单的方式),占用软件和硬件资源少,所以在通信、控制、数据传输、仿真调试等许多方面有非常广泛应用。很多设备或者模块甚至都会提供专用的串口接口用于通信和控制,如GPRS模块、蓝牙/WiFi透传模块等。UART使用一个GPIO做发送,一个GPIO做接收,没有单独的时钟信号。收发双方需要先约定好相同的波特率、数据位、校验位、停止位等参数才能正常通信,所以也叫做异步串行总线。

    1.获取UART类的方法

    >>> from pyb import UART
    >>> help(pyb.UART)
    object <class 'UART'> is of type type
      init -- <function>
      deinit -- <function>
      any -- <function>
      read -- <function>
      readline -- <function>
      readinto -- <function>
      write -- <function>
      irq -- <function>
      writechar -- <function>
      readchar -- <function>
      sendbreak -- <function>
      RTS -- 256
      CTS -- 512
      IRQ_RXIDLE -- 16
    >>>

     2. 在MicroPython中,操作串口和使用GPIO一样简单。我们先看看串口的常用函数,从这里就可以看出串口的基本使用方法。

    串口的基本使用方式是,首先定义使用的串口,再设置串口参数(最主要就是设置波特率),然后通过 write()函数发送缓冲区或者字符串。或者用 any()函数判断是否接收到数据,再用read()函数读取数据。

    UART的函数如下:

    (1)class pyb.UART(bus,...)

    bus:1-6,或者‘XA’,‘XB’,‘YA’,‘YB’。

    在PYB V10上,串口对应的GPIO是:

    (2)uart.init(baudrate,bits=8,parity=None,stop=1,timeout=1000,flow=None,timeout_char=0,read_buf_len=64)

    串口初始化。

    ◆baudrate:波特率

    ◆bits:数据位,可以是7/8/9

    ◆parity:奇偶校验位,可以设置为None,0 (even)或1 (odd),默认无校验

    ◆stop:停止位,1/2

    ◆flow:流量控制,可以是None,UART.RTS,UART.CTS或UART.RTS|UART.CTS,默认None(无流量控制)

    ◆timeout:读取一个字节的超时时间(ms)

    ◆timeout_char:读或写时两个字节之间的等待时间

    ◆read_buf_len:读缓存的长度,0代表禁用缓冲区

    (3)uart.deinit()

    关闭串口。

    (4)uart.any()

    返回缓冲区数据个数,大于0代表收到数据。

    (5)uart.writechar(char)

    写入一个字节。

    (6)uart.read([nbytes])

    读取最多nbytes个字节。如果数据位是9bits,那么一个数据占用两个字节,并且nbytes必须是偶数。

    (7)uart.readall()

    读取所有数据。

    (8)uart.readchar()

    读取一个字节。

    (9)uart.readinto(buf[,nbytes])

    buf:数据缓冲区;

    nbytes:最大读取数量。

    (10)uart.readline()

    读取一行。

    (11)uart.write(buf)

    写入缓冲区。在9bits模式下,两个字节算一个数据。

    (12)uart.sendbreak()

    往总线上发送停止状态,拉低总线13bits时间。

     注:

    当设置波特率时,如果波特率的误差超过5%,将引起一个异常。

    当无奇偶校验时,数据位可以设置为8或9位;而使用奇偶校验时,数据位只能设置成7或8位。

    在9位数据位模式下,无论读或写,一个数据都占用2个字节。

    目前在MicroPython中,串口还不支持回调函数(中断),只能通过查询的方式(any()函数)来判断是否收到了数据。考虑到串口通信的速度不是太快,在大部分情况下这种方式是能够满足性能上的要求的。

    在PYB V10上,只有串口2和3支持流量控制功能。

  • 相关阅读:
    jquery笔记(常用技术)
    AutoUpgraderPro 4.X美化版 源码及Demo程序
    读写Unicode和UTF8格式文件
    AutoUpgraderPro 4.X美化版 源码及Demo程序
    买了两套无线键鼠套装
    今天做了一回黑客
    AutoUpgraderPro Ver 4.1.1带源码美化版
    Delphi虚拟键码对照表
    Delphi虚拟键码对照表
    读写Unicode和UTF8格式文件
  • 原文地址:https://www.cnblogs.com/iBoundary/p/11516976.html
Copyright © 2020-2023  润新知