目录
安装pyserial
pip install pyserial
查看可用的端口
运行结果:
注:在pyCharm环境下运行的,在电脑串口上有一个采集的传感器(通过串口连接到电脑)
最近调试通信模块时,需要用UART串口输入AT命令控制模块,手动输入不便于自动化,所以就学习了下使用python进行串口控制。
常用的方法函数
1)导入串口模块import serial;
2)打开串口ser = serial.Serial(端口名称,...其他参数),
ser.open()方法可以在close之后再次打开相应端口;
3)关闭串口ser.close();
4)通过串口写入ser.write(b''),参数需要使用字节bytes类型,如果是str类型,则可以使用encode('utf-8')的方式进行转换;读取模块信息的方法如下:
5)x= ser.read()读取一个字节,x=read(n)读取n个字节,readline()可以用来读取一行。
查看COM口工
python -m serial.tools.list_ports -v,可以列出所有串口名称及属性。
Serial参数说明
port 端口名字,windows下为'COM1'等;
baudrate (int)波特率,可以设置的范围9600到115200;
bytesize为每个字节的比特数,设置值为FIVEBITS, SIXBITS,SEVENBITS, EIGHTBITS 5-8比特;
parity设置校验位
PARITY_NONE,PARITY_EVEN,PARITY_SPACE,PARITY_ODD PARITY_MARK,用来设置校验位;stopbits停止位,用来指示字节完成,可以选择的设置STOPBITS_ONE,STOPBITS_ONE_POINT_FIVE, STOPBITS_TWO;write_timeout(float) 写入超时设置;
timeout (float)读出超时设置;xonxoff (bool)软件流控开关;
rtscts (bool)硬件RTS/CTS流控开关;
dsrdtr (bool)硬件DSR/DTR流控开关。
关于UART流控两线方式没有硬件流控,四线方式采用DSR、DTR进行流控,而RS232标准中可以有DSR、DTR的流控方式。RTS-request to send; CTS- clear to send;DSR-data set ready;DTR-Data Terminal Ready。
一个简单示例:能自动检测串口,并连接此串口,收集串口的数据
综合上面的两个代码,能自动检测串口,并连接此串口,收集串口的数据
运行效果:
我用CC2530(Zigbee),采集了温度、湿度的数据,通过串口和电脑连接,运行此程序后,能自动检测到串口,然后获取 CC2530的数据,然后显示在电脑端。