[嵌入式linux] linux/windows兼容串口代码 serial.py

[复制链接]
3472|3
 楼主| sinanjj 发表于 2011-8-18 14:40 | 显示全部楼层 |阅读模式
本帖最后由 sinanjj 于 2011-8-18 14:41 编辑

今天整理资料. 一些存了的代码发上来吧.

估计以后不会再用了.
  1. #! /usr/bin/python
  2. # apt-get install python-serial
  3. import sys
  4. import serial
  5. import time

  6. for i in range(256):        #scan for available ports
  7.         try:
  8.                 #ser = serial.Serial(i, 115200, timeout=1)
  9.                 ser = serial.Serial(i, 115200)
  10.                 break
  11.         except:
  12.                 if i == 255:
  13.                         print 'there is no serial port exist'
  14.                         sys.exit(0)
  15.                 pass
  16. print ser.portstr
  17. ser.setRTS(0)
  18. ser.setDTR(0)
  19. file_ir = open('ir_data.txt', 'w')
  20. cmd_len = 0        # one cmd length 1s == 20000/8 == 2500
  21. while 1:
  22.         buf_ser = ser.read(20)
  23.         if buf_ser == "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00":
  24.                 if (cmd_len >0) and (cmd_len < 2500):
  25.                         pass
  26.                 elif cmd_len == 2500:
  27.                         cmd_len = 0
  28.                         continue
  29.                 else:
  30.                         continue
  31.         print " ".join(map(lambda c: "%02X" %ord(c), buf_ser))
  32.         file_ir.write(",".join(map(lambda c: "0x%02X" %ord(c), buf_ser)) + ",")
  33.         file_ir.flush()
  34.         cmd_len = cmd_len + 20




看得懂的朋友自己拿走. 看不懂的朋友自己查. 实在看不懂我也没办法. 不解释.
 楼主| sinanjj 发表于 2011-12-21 09:08 | 显示全部楼层
accessing serial ports
        check the system's serial port
$ dmesg | grep tty
        Serial Port Files
+------------+------------+--------------+
| Port 1     | Port 2     | usb2serial   |
| /dev/ttyS0 | /dev/ttyS1 | /dev/ttyUSB0 |
+------------+------------+--------------+
To access a serial port you simply open the corresponding device file.
# chmod a+rw /dev/ttyS0

                codes for a serial port
#! /usr/bin/python
# -*- coding: utf-8 -*-
# apt-get install python-serial
import sys
import serial
for i in range(256):        #scan for available ports
        try:
                ser = serial.Serial(i, 115200, timeout=1)
                break
        except:
                if i == 255:
                        print 'there is no serial port exist'
                        sys.exit(0)
                pass
print ser.portstr
ser.setRTS(0)
ser.setDTR(0)
file_ser = open('ser_data.txt', 'w')
while 1:
        ser.write("\x00\x01\x02\x03\x04\x05")
        buf_ser = ser.read(11)
        print " ".join(map(lambda c: "%02X" %ord(c), buf_ser))
        file_ser.write(",".join(map(lambda c: "0x%02X" %ord(c), buf_ser)) + ",")
        file_ser.flush()
haolaishi 发表于 2011-12-21 16:42 | 显示全部楼层
renmin520 发表于 2012-1-24 16:37 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:In God We Trust 独立的个人,体赖科学技术工具提供针对个人的产品与服务,是通向幸福的唯一道路 工程师,设计师等可以个人创业的群体,将逐步瓦解官僚体制公司,成为中国中产。(重复劳动,工厂等,将逐步机械化) seacer.co

456

主题

6299

帖子

25

粉丝
快速回复 在线客服 返回列表 返回顶部