2016-07-12 4 views
0

Paseerial을 사용하여 Novatech ddsm 주파수 합성기 보드를 제어하는 ​​GUI 응용 프로그램을 작성하고 있습니다. 직렬 포트 (퍼티)에 연결된 명령 프롬프트를 통해 다른 명령 목록을 보낼 수 있으며 올바른 명령을 보내면 '확인'이 반환됩니다. 직렬 포트에 뭔가를 쓰고 난 후에 파이썬 스크립트에서 '확인'을 볼 수 없습니다. 꽤 긴하지만이 작업을 얻을 수 없기 때문에이 내 실제 코드가 아닙니다 중 하나직렬 포트에서 반환 값 가져 오기 (파이썬)

import serial 
    ser = serial.Serial(
     port='COM3', baudrate=19200, bytesize=8, 
     parity='N',  
     stopbits=1, timeout=1 
     ) 
    command = 'f0 100' 
    ser.write(command.encode()) 
    msg = ser.read(64) 
    print(msg) 

난 단지 다시 얻고이를 실행 :

b'f0 100' 
+0

퍼티를 통해 수동으로 장치를 사용하는 경우 명령 끝에 Enter 키를 눌러야합니까? 만약 그렇다면, 당신은 여기서 같은 일을 할 필요가있다. 명령 문자열의 끝에 "\ r"을 써라. – jasonharper

답변

0

당신이 전화를하려고 노력 해요 두 번 또는 readline() 번을 여러 번 사용 하시겠습니까? 작동하는 경우 반환 값 == b"" (더 이상의 응답이 없을 때 얻을 수있는 행)까지 실행되는 while 루프를 만들 수 있습니다. 희망이 도움이됩니다.

0

끝에 \ r \ n을 추가해야 할 수도 있습니다. AT 명령어로 작업하고 추가해야합니다! \ r \ n gsm 모듈 처리를 위해 AT 명령을 포함하여 너무 많은 명령과 함께 사용됩니다. jasonharper precised처럼, 대부분의 터미널에서 엔터를 치면됩니다. 사용 된 명령의 표준입니다. 대부분 명령이 끝나는 정확한 위치.

관련 문제