python 직렬 데이터 읽기 예시

2042 단어 python직렬데이터
python3 읽기 직렬 데이터 데모
최근에 데모, 지그비 직렬로 크랜베리 파이를 연결하고, 크랜베리 파이는 직렬 통신으로 지그비 직렬로 통과한 값을 받아들인다.그중에 제가 쓰는 라즈베리파이는 3세대 B+입니다.zigbee는 3초마다 직렬로 데이터를 출력합니다.
다음은python 직렬 통신이지만linux가 아닌 것은 제가 윈도우즈에 쓴 테스트 데모입니다.python 버전은 3입니다.
python 직렬 읽기 데이터

# TODO  
# Auther wjw

import serial #  
import time #  


ser = serial.Serial("COM3",115200,timeout = 5) #  com3 , 115200, 5
ser.flushInput() #  

def main():
  while True:
    count = ser.inWaiting() #  
    if count !=0 :
      recv = ser.read(ser.in_waiting).decode("gbk") #  , gbk 
      print(time.time()," --- recv --> ", recv) #  
    time.sleep(0.1) #  0.1 , CPU 



if __name__ == '__main__':
  main()
위의 코드는 이미python 직렬 읽기를 실현했지만, 대부분은 아직 써야 한다.
직렬 쓰기 데이터
사실은 바로 write 방법이다. 나는 라인을 하나 켜서 라인에서 직렬로 나온 데이터를 얻은 다음에 하나의 사순환은 1초마다 1, 1초마다 0을 보낸다.

import serial
import time
import _thread  #  

data_ser = serial.Serial("COM3",115200,timeout = 5)
data_ser.flushInput()



def get_data():
  while True:
    data_count = data_ser.inWaiting()
    if data_count !=0 :
      recv = data_ser.read(data_ser.in_waiting).decode("gbk")
      print(time.time()," --- data_recv --> ", recv)
    time.sleep(0.1)



if __name__ == '__main__':
  
  _thread.start_new_thread(get_data,()) #  , get_data 
  while 1:
    time.sleep(20) 
    data_ser.write(b'1') #  1
    time.sleep(20)
    data_ser.write(b'0') #  0
완성했으니 얼마 안 남았을 거야!
라즈베리 파이는python을 가지고 있지만, 기본은python2입니다. 두 줄로 기본python3를 수정할 수 있습니다.

sudo rm /usr/bin/python

sudo ln -s /usr/bin/python3.4 /usr/bin/python
이상은python이 직렬 데이터를 읽는 예시의 상세한 내용입니다. 더 많은python이 직렬 데이터를 읽는 것에 관한 자료는 저희 다른 관련 글을 주목해 주십시오!

좋은 웹페이지 즐겨찾기