串口接口(Python)
概要
小龟主控板支持最多3路串口(UART协议),其中主控板上的Tx、Rx管脚为默认的一路串口。
所有不指定管脚的默认串口操作,都是使用小龟主控板的Tx、Rx两根管脚。注意,这两根管脚在小车启动的时候,也会输出日志信息。
所以如果对您的传感器有影响的话,可以使用其它管脚上的串口。
串口的读写数据,往往是基于字节流的紧凑型数据,您可以使用小龟简易串行编解码器来编解码成Python对象。
版本要求:不低于V211102
默认串口操作接口
往默认串口输出数据(write)
语法:
- car.uart.write(data)
说明:
往默认串口输出数据。
参数:
- data 输出数据,可以是字符串,也可以是数值列表
- 返回值 已经完成输出的数据长度,
范例:
#往默认串口输出hello
car.uart.write("hello")
>5
从默认串口读入数据(read)
语法:
- car.uart.read(count, timeout)
说明:
从默认串口读入数据。注意默认串口的读入是带缓存的,也就是未被读取的数据,会被一直存放着等待被读入。如果不想要读取前的旧数据,可以使用flush来清空。
参数:
- count 明确指定读取的数据长度,可省略,默认读取当前缓存内全部数据(最多255字节)
- timeout 等待数据读取的超时时间,可省略,缺省count的场合不等待,配置count的场合则一直等待count填满为止
范例:
#从默认串口读入当前已经缓存的数据
car.uar.read()
>hello
清空默认串口缓存(flush)
语法:
- car.uart.flush()
说明:
清空默认串口上的缓存数据
参数:
- 返回值 操作是否成功
范例:
#清空当前串口缓存
car.uart.flush()
关闭默认串口(close)
语法:
- car.uart.close()
说明:
关闭默认串口对象
参数:
- 返回值 操作是否成功
范例:
#关闭默认串口
car.uart.close()
通用串口操作接口
打开串口(open)
语法:
- car.uart.open(tx, rx, speed, cts, rts)
说明:
在指定管脚上打开串口功能。
参数:
- tx 发送管脚
- rx 接受管脚
- speed 通信速率,可省略,默认为115200
- cts CTS信号管脚,可省略,默认为None
- rts RTS信号管脚,可省略,默认为None
- 返回值 串口对象
范例:
#打开串口,其中A1是发送管脚,A2是接受管脚,速率115200bps
uart = car.uart.open(A1, A2, 115200)
往串口输出数据(write)
语法:
- 串口对象.write(data)
说明:
往前面打开的串口上输出数据。
参数:
- data 输出内容
范例:
#往前面打开的串口对象输出 hello
uart.write("hello")
从串口读入数据(read)
语法:
- 串口对象.read([count], [timeout])
说明:
从串口上读入数据
参数:
- count 指定本次需要读入的数据长度,可省略,默认读取当前缓存内全部数据(最多255字节)
- timeout 指定本次读入数据的超时等待时间,可省略,缺省count的场合不等待,配置count的场合则一直等待count填满为止
- 返回值 读入的数据
范例:
#从前面打开的串口对象读取5个字节的内容,会等待读满5个字符为止
uart.read(5)
#读取5个字符,如果等待时间超过1秒,则放弃
uart.read(5, 1)
清空串口缓存(flush)
语法:
- 串口对象.flush()
说明:
清空串口上的缓存数据
参数:
- 返回值 操作是否成功
范例:
#清空前面打开的串口对象的缓存数据
uart.flush()
关闭串口(close)
语法:
- 串口对象.close()
说明:
关闭当前串口对象
参数:
- 返回值 操作是否成功
范例:
#关闭前面打开的串口对象
uart.close()