python 之serial

一 先按照 pywin32:pywin32是一个非常强大的Python扩展库,是Python调用Windows系统底层功能的最佳接口,不安装这个按照pyserial也没有用

二 按装pyserial

三pyserial使用注意:python提供了n=serial.iswaiting serial.read(n)来接收数据,serial.iswaiting启动接收,并返回接收数据的长度,然后用read(n)将这指定的数据读出来。但现实中的问题是两者的中间需要加延时(根据波特率计算发送内容所需的时间,这样就不会出现延时过短读出的不全;延时时间长了就会出现前后帧发出的内容重合到一起),此外如果需要判断什么时候串口不活动,可以再serial.iswaiting一直延时(超过几个字符的传送时间,软件延时计数器累加),而在循环体外将计数器清零,在累计的几个字符时间接受的数据长度还为0则认为通讯结束。

while uart.iswaiting ==0 : #作用1:通讯期间只起到触发开始接受,然后延时一定时间直到全部接收完成;作用2:停止传递期间,判断何时通讯结束,相当于超时设计

  time.sleep(t)

  if(++count == delay_5bit)

    count =0

    break

time.sleep(Tmessage) #一帧的传递时间

len=uart.iswaiting

if n:

  uart.read(len)

#接收处理

else:

  #通讯断开或者串口关闭识别处理