Python打开串口的代码:
http://lvxinwei.sinaapp.com/1045.html
下载地址:http://sourceforge.net/projects/pyserial/files/
直接下载地址:
http://downloads.sourceforge.net/project/pyserial/pyserial/2.5/pyserial-2.5.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fpyserial%2Ffiles%2Fpyserial%2F2.5%2F&ts=1344675974&use_mirror=nchc
安装方法:
python setup.py install
easy_install pyserial
是否安装成功:
import serial
ghostwwl -- 补充一点点 那个串口的pyserial模块到http://sourceforge.net/project/showfiles.php?group_id=46487去下 不然会no model named .....
Border -- 从 http://pyserial.cvs.sourceforge.net/pyserial/pyserial/ 得到些例子。
Python 串口设备应用,多线程:http://www.cnblogs.com/dainiao01/archive/2010/09/15/2250195.html
关于python 向串口发送命令(16进制)
很神奇 ^ ^,串口终端程序 = vte + serial,实际上就是重写了vte的commit信号响应函数,再把串口的输入输出到vte上...
这段代码发送的16进制是以ASCII码发送的还是UNICODE码发送的??
如果是前一种,那么后一种方式应该怎么实现?
如果你在Python实际应用的过程中仍然不清楚Python串口是如何使用时,你可以参考以下的文章对Python串口的使用有一个正确的了解,以下就是文章的相关内容的介绍,望你会有所收获。
为了使用Python串口,首先需要下载相关模块:
1. pyserial 2. pywin32 (http://sourceforge.net/projects/pywin32/)
google “Python串口 操作”关键字,找到相关python代码,发送数据可用chr和pack组装处理,如:
snd = '' snd += chr(97) data = 0x12345678 snd += pack.('i', data) snd += chr(0x64) self.l_serial.write(snd);
#发送的数据是(16进制):61 78 56 34 12 64接收的数据用ord函数,将字节内容变为整数,进行判断处理。如:
if ord(recv[2])== 0x01:
判断recv[2]是否是0x01.注意:不能这样比较
if recv[2] == 'a': pass
也不能这样比较
if recv[2] == 0x97: pass
以上的文章就是对Python串口 的使用的部分介绍。
参考:http://blog.csdn.net/asmc51/article/details/3068950
http://lvxinwei.sinaapp.com/1045.html
下载地址:http://sourceforge.net/projects/pyserial/files/
直接下载地址:
http://downloads.sourceforge.net/project/pyserial/pyserial/2.5/pyserial-2.5.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fpyserial%2Ffiles%2Fpyserial%2F2.5%2F&ts=1344675974&use_mirror=nchc
安装方法:
python setup.py install
easy_install pyserial
是否安装成功:
import serial
ghostwwl -- 补充一点点 那个串口的pyserial模块到http://sourceforge.net/project/showfiles.php?group_id=46487去下 不然会no model named .....
Border -- 从 http://pyserial.cvs.sourceforge.net/pyserial/pyserial/ 得到些例子。
Python 串口设备应用,多线程:http://www.cnblogs.com/dainiao01/archive/2010/09/15/2250195.html
关于python 向串口发送命令(16进制)
import serial_port
port = serial_port.create('COM1', 9600, 8, 'none', 1, 0)
port.write('\x02\x00\x00\x00\x00\x02')
port = serial_port.create('COM1', 9600, 8, 'none', 1, 0)
port.write('\x02\x00\x00\x00\x00\x02')
很神奇 ^ ^,串口终端程序 = vte + serial,实际上就是重写了vte的commit信号响应函数,再把串口的输入输出到vte上...
#!/usr/bin/env python
import gtk
import vte
from serial import Serial
import gobject
def WriteSerial(self, data, size):
if ser.isOpen(): ser.write(data)
def ReadSerial(dev, conf):
data = ser.read(1024)
if not data:
print "not data"
v.feed(data)
return True
if __name__ == '__main__':
global ser
ser = Serial(port='/dev/ttyUSB0', baudrate=115200)
ser.setTimeout(0)
v = vte.Terminal ()
v.connect ("child-exited", lambda term: gtk.main_quit())
v.connect("commit", WriteSerial)
gobject.io_add_watch(ser, gobject.IO_IN, ReadSerial)
window = gtk.Window()
window.add(v)
window.connect('delete-event', lambda window, event: gtk.main_quit())
window.show_all()
gtk.main()
import gtk
import vte
from serial import Serial
import gobject
def WriteSerial(self, data, size):
if ser.isOpen(): ser.write(data)
def ReadSerial(dev, conf):
data = ser.read(1024)
if not data:
print "not data"
v.feed(data)
return True
if __name__ == '__main__':
global ser
ser = Serial(port='/dev/ttyUSB0', baudrate=115200)
ser.setTimeout(0)
v = vte.Terminal ()
v.connect ("child-exited", lambda term: gtk.main_quit())
v.connect("commit", WriteSerial)
gobject.io_add_watch(ser, gobject.IO_IN, ReadSerial)
window = gtk.Window()
window.add(v)
window.connect('delete-event', lambda window, event: gtk.main_quit())
window.show_all()
gtk.main()
这段代码发送的16进制是以ASCII码发送的还是UNICODE码发送的??
如果是前一种,那么后一种方式应该怎么实现?
如果你在Python实际应用的过程中仍然不清楚Python串口是如何使用时,你可以参考以下的文章对Python串口的使用有一个正确的了解,以下就是文章的相关内容的介绍,望你会有所收获。
为了使用Python串口,首先需要下载相关模块:
1. pyserial 2. pywin32 (http://sourceforge.net/projects/pywin32/)
google “Python串口 操作”关键字,找到相关python代码,发送数据可用chr和pack组装处理,如:
snd = '' snd += chr(97) data = 0x12345678 snd += pack.('i', data) snd += chr(0x64) self.l_serial.write(snd);
#发送的数据是(16进制):61 78 56 34 12 64接收的数据用ord函数,将字节内容变为整数,进行判断处理。如:
if ord(recv[2])== 0x01:
判断recv[2]是否是0x01.注意:不能这样比较
if recv[2] == 'a': pass
也不能这样比较
if recv[2] == 0x97: pass
以上的文章就是对Python串口 的使用的部分介绍。
参考:http://blog.csdn.net/asmc51/article/details/3068950
作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/3611/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!
最后编辑: jackxiang 编辑于2013-1-29 23:22
评论列表