วันอังคารที่ 23 กันยายน พ.ศ. 2557

python port.write

ในการเขียน python ให้ส่งออกข้อมูลผ่าน serial port มีอยู่ 2-3 แบบ ที่ผู้เขียนเจอมา

โดยมีตัวอย่าง code ดังต่อไปนี้

import serial
import time

port = serial.Serial("/dev/ttyUSB0", baudrate=19200, timeout=1.0)

while 1:
  port.write(chr(0x01))
  time.sleep(1)

โดยที่เห็นใน code ด้านบน จะส่งออกมาเป็น 0x01 ฐาน16 จริงๆ



แต่ถ้าเราเปลี่ยน code เป็น port.write("1") เราจะเห็นข้อมูลต่างออกไป คือ 0x31



แต่ถ้าเราเปลี่ยน code เป็น port.write("0x01")
สิ่งที่ RPi ส่งออกมาจะเป็น 0x30 0x78 0x30 0x31 ซึ่งถ้าเปลี่ยนเป็น ascii เราจะเห็นเป็น 0x01




สรุป
การส่งข้อมูล serial

port.write(chr(0x01))
port.write("1")
port.write("0x01")

ให้ผลที่ต่างกัน เราสามารถเลือกใช้ให้เหมาะสมกับงานของเราได้ครัช

แสดงความคิดเห็น