pyserial_API函数说明

PySerial API

serial.Serial 类

init(port=None, baudrate=9600, bytesize=EIGHTBITS, parity=PARITY_NONE, stopbits=STOPBITS_ONE, timeout=None, xonxoff=False, rtscts=False, write_timeout=None, dsrdtr=False, inter_byte_timeout=None)

参数:

port -设备名称或无。
baudrate(int)—波特率,如9600或115200等。
bytesize—数据位数。 取值范围:5, 6, 7, 8
parity—启用奇偶校验。 可选值: ‘N’, ‘E’, ‘O’, ‘M’, ‘S’
stopbits—停止位个数。 可选值:1, 1.5, 2
timeout (float)—设置读超时值。
xonxoff (bool)—开启软件流控。
rtscts (bool) -启用硬件(RTS/CTS)流量控制。
dsrdtr (bool)—启用硬件(DSR/DTR)流量控制。
write_timeout (float)—设置写超时值。
inter_byte_timeout (float)—字符间超时,默认为None。

错误抛出:

ValueError -当参数超出范围时将被引发,例如波特率、数据位。
SerialException -如果找不到设备或无法配置。
当给出一个端口时,该端口会在对象创建时立即打开。 当port为None且需要连续调用open()时,它不会被打开。
Port: 是设备名称:根据操作系统而定。 例如:/dev/ ttyusb0 (GNU/Linux)或COM3 (Windows)。
baudrate: 可以是以下标准值之一:50、75、110、134、150、200、300、600、1200、1800、2400、4800、9600、19200、38400、57600、115200。 它们在所有平台上都得到了很好的支持。
115200以上的标准值,如:230400、460800、500000、576000、921600、1000000、1152000、1500000、2000000、2500000、3000000、3500000、4000000也适用于许多平台和设备。
**timeout = None:**永远等待/直到收到请求的字节数
**Timeout = 0:**非阻塞模式,在任何情况下立即返回,返回0或更多,直到请求的字节数
**Timeout = x:**设置Timeout为x秒(浮点数),当请求的字节数可用时立即返回,否则等待直到超时过期并返回在此之前接收到的所有字节。 Write()默认是阻塞的,除非设置了write_timeout。 有关可能的值,请参考上面的超时列表。
注意,同时启用流量控制方法(xonxoff和rtscts)可能不被支持。 通常会只使用其中一种方法,而不是两种方法。

函数

open ()

打开端口。

close ()

关闭端口。

del ()

析构函数,当串行端口实例被释放时关闭端口。
当应用于一个关闭的端口时,下列方法可能引发SerialException。

Read(size= 1)

参数:size—要读取的字节数。
返回:从端口读取的字节。
返回类型:字节
从串口读取大小字节。 如果设置了超时,则可能会按请求返回更少的字符。 如果没有超时,它将阻塞,直到读取所请求的字节数。

write(Data)

参数:Data -要发送的数据。
返回:写入的字节数。
返回类型:int
错误抛出SerialTimeoutException:
如果端口配置了写超时,并且超过了这个时间。
将字节数据写入端口。 这应该是字节类型(或兼容,如bytearray或memoryview)。 Unicode字符串必须编码(例如: “hello”.encode(“utf - 8”)。

Flush()

像对象一样刷新文件。 在这种情况下,等待直到所有数据都写完。

in_waiting

Getter:获取输入缓冲区中的字节数
类型:int
返回接收缓冲区中的字节数。

在3.0版更改:从inWaiting()更改为property

out_waiting

Getter:获取输出缓冲区中的字节数
类型:int
平台:posix
平台:windows
返回输出缓冲区中的字节数。

reset_input_buffer ()

刷新输入缓冲区,丢弃所有内容。
在3.0版更改:由flushInput()重命名

reset_output_buffer ()

清除输出缓冲区,中止当前输出并丢弃缓冲区中的所有内容。

在3.0版更改:由flushOutput()重命名

send_break(持续时间= 0.25)

参数:duration (float)—激活BREAK条件的时间。
发送打破条件。 定时,在给定的持续时间后返回空闲状态。

break_condition

Getter:获取当前BREAK状态
Setter:控制BREAK状态
类型:bool
当设置为True时激活BREAK条件,否则禁用。 TXD控件。 当激活时,不可能发射信号。

rts

Setter:设置RTS电平状态
Getter:返回RTS电平状态
类型:bool
将RTS线设置为指定的逻辑级别。 可以在打开串口之前赋此值,然后在open()上应用该值。

dtr

Setter:设置DTR电平状态
Getter:返回DTR电平状态
类型:bool
将DTR线设置为指定的逻辑电平。 可以在打开串口之前赋此值,然后在open()上应用该值。

Name

Getter:设备名称。
类型:str
2.5新版功能。

cts

Getter:获取CTS电平状态
类型:bool
返回CTS行的状态。

dsr

Getter:获取DSR电平状态
类型:bool
返回DSR线路的状态。

ri

Getter:获取RI行的状态
类型:bool
返回RI行状态。

cd

Getter:获取CD行状态
类型:bool
返回CD行状态

新的值可以分配给以下属性(properties),端口将被重新配置,即使它在那个时候是打开的:

port

类型:str
读写端口。 当端口已经打开时,它将被关闭,并使用新的设置重新打开。

baudrate

Getter:获取当前波特率
“Setter”:设置新的波特率
类型:int
读写当前波特率设置。

bytesize

Getter:获取当前字节大小
Setter:设置新字节大小。 取值范围:5位、6位、7位、8位
类型:int
读取或写入当前数据字节大小设置。

parity

Getter:获取当前奇偶校验设置
Setter:设置新的奇偶校验模式。 取值:PARITY_NONE、PARITY_EVEN、PARITY_ODD、PARITY_MARK、PARITY_SPACE
读写当前奇偶校验设置。

stopbits

Getter:获取当前停止位设置
Setter:设置新的停止位设置。 可选值:STOPBITS_ONE、STOPBITS_ONE_POINT_FIVE、STOPBITS_TWO
读取或写入当前停止位宽度设置。

timeout

Getter:获取当前读超时设置
Setter:设置读超时
类型:浮动(秒)
读写当前读超时设置。

write_timeout

Getter:获取当前写超时设置
Setter:设置写超时时间
类型:浮动(秒)
读写当前写超时设置。

在3.0版更改:由writeTimeout重命名

inter_byte_timeout

Getter:获取当前字节间超时设置
Setter:禁用(None)或启用字节间超时
类型:float或None
读取或写入当前字节间超时设置。

在3.0版更改:由interCharTimeout重命名

xonxoff

Getter:获取当前软件流量控制设置
Setter:开启或关闭软件流量控制
类型:bool
读取或写入当前软件流量控制速率设置。

rtscts

Getter:获取当前硬件流量控制设置
Setter:设置硬件流控制开关
类型:bool
读取或写入当前硬件流量控制设置。

dsrdtr

Getter:获取当前硬件流量控制设置
Setter:设置硬件流控制开关
类型:bool
读取或写入当前硬件流量控制设置。

rs485_mode

Getter:获取当前RS485设置
Setter: disable (None)或enable RS485设置
类型:rs485。 RS485Settings或没有
平台:posix (Linux,有限的硬件)
平台:windows(只能在TX上使用RTS)
属性,配置RS485支持。 当设置为rs485的实例时。 rs485设置和操作系统支持,RTS将在数据发送时激活,否则不活动(接收)。 rs485。 RS485Settings类提供了一些平台支持的附加设置。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这是一个示例代码,可以使用EC01G获取经纬度,并将其发送到阿里云数据库中: ```python import serial import time import json from aliyunsdkcore.client import AcsClient from aliyunsdkcore.request import CommonRequest # 阿里云API信息 access_key_id = 'your_access_key_id' access_secret = 'your_access_secret' region_id = 'cn-shanghai' product_name = 'your_product_name' domain = 'iot.cn-shanghai.aliyuncs.com' version = '2018-01-20' # 串口信息 ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=1) # 获取经纬度信息 def get_location(): ser.write(b'AT+QGPS=1\r\n') time.sleep(1) response = ser.read(ser.in_waiting) if b'+QGPS: ' in response: location_str = response.decode('utf-8').split(':')[1].strip() location_list = location_str.split(',') if location_list[0] and location_list[1]: return {'longitude': location_list[0], 'latitude': location_list[1]} return None # 发送数据到阿里云 def send_to_aliyun(data): client = AcsClient(access_key_id, access_secret, region_id) request = CommonRequest() request.set_domain(domain) request.set_version(version) request.set_product(product_name) request.set_action_name('Pub') request.add_query_param('RegionId', region_id) request.add_query_param('TopicFullName', 'your_topic_full_name') request.add_query_param('MessageContent', json.dumps(data)) response = client.do_action(request) print(response) if __name__ == '__main__': while True: location = get_location() if location: send_to_aliyun(location) time.sleep(60) ``` 需要将代码中的 `your_access_key_id`、`your_access_secret`、`your_product_name`、`your_topic_full_name` 替换为你的阿里云API信息和发布消息的主题全名。此外,需要安装 `aliyun-python-sdk-core` 和 `pyserial` 库。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值