1. python 3.x 写二进制文件
FileOutput=open(r'test.txt','wb')
FileOutput.write(b'xc4')
FileOutput.write(b'xe3')
FileOutput.close()
2. python 串口传输问题
首先用USB线连上串口设备,然后确认是哪个COM口,下面用COM3为例。
import serial
t=serial.Serial('COM3',115200)
command = "aabbccddee" //十六进制字符串
t.write(command.decode("hex")) //转换成十六进制发送,否则设备不认识
print t.read(16)
3. 如何用串口工具模拟器向python发送数据
串口模块的波特率比较特别,找了几个串口工具都不支持。。。所以,干脆用python自己来写了,其实已经好奇好久了,别人的工具各种不顺手。
需要pyserial的支持,兼容各种平台,不需要新编译二进制文件。
先贴一个定时发送的代码:
import serial
import time
ser = serial.Serial('/dev/ttyUSB0', 250000, timeout=1)
print ser.isOpen()
words="gggggggggggggggg"
while (1):
print "send 256x\""+words+"\" to remotes"
startTime = time.time()
times = 256
while (times):
times -= 1
s = ser.write(words)
endTime = time.time()
print "use time: "+str(endTime-startTime)
print ""
time.sleep(5)
ser.close()
4. 如何用python实现串口通信
Python非常适合写一些测试的脚本,如快速的串口通信测试等。如果使用VC++ QT开发,可能用时较多,使用python,如果掌握使用方法,可以直接读写测试,配合设备或是串口助手,很快验证与实现。
Python有没有现成的串口API直接调用呢?经过实践验证,需要安装一个叫 Pyserial的组件即可。这个可以在github上下载。
在windows 7 64bit 上可以使用吗?当然可以使用,我安装的python3.5为64位的。把下载后的文件,其中有一个serial的文件夹,拷贝到python35安装路径, C:\Python35\Lib\site-packages\serial
网上可以搜一下windows的安装包,安装完也是:C:\Python35\Lib\site-packages\serial ,可以用最新的版本,替换即可。
测试的方法:在python IDE里测试:
>>> import serial
这里如果报错,是python版本与pyserial版本没有配合好。如果正常,不返回,即可以导入serial模块。
>>> ser=serial.Serial("COM5",115200)
这里为COM5,115200的波特率。如果打不开,请检查安装环境。
>>> ser.write('hello,serial test'.encode())
17
发送测试(如果返回字节数,说明返回成功),这里需要转换一个编码为字节。
以上测试,可以使用现在的设备或是串口助手,如安装Virtual Serial Port Driver 7.2 虚拟串口软件,设置一对串口,进行自发自收的测试。
>>> print(ser.readline())
b'abcdefg\r\n'
这里是串口接收,有接收的超时。设备或是串口助手发送一个字符串,以回车换行结束,这里就可以收到打印出来。
也可以用ser.read(),这里只接收一个字符来实现。
上面已经实现了基本的串口操作。
关闭串口为:
>>> ser.close()
如果使用python,一般写个py文件,就像windows bat 批处理一样,这是python强大的地方。如果写一个py脚本呢?其实只要把上面的命令,一条条写下来,就是一个脚本,测试如下:
import serialser=serial.Serial("COM5",115200,timeout=0.5)for i in range(0,100-1):ser.write('hello\r\n'.encode())print(ser.readline());ser.close()
5. python 用socket怎么发送一段二进制数据
参考python 的struct mole — Interpret strings as packed binary data, 用来将数据封装到类似C语言的结构体中进行发送。具体可以参考:
https://docs.python.org/2/library/struct.html
http://www.cnblogs.com/gala/archive/2011/09/22/2184801.html
http://stackoverflow.com/questions/3753589/packing-and-unpacking-variable-length-array-string-using-the-struct-mole-in-py
6. 如何用python生成和读取二进制文件
可以使用numpy.fromfile(),也可以使用open(filename,
'rb'),其中的'b'就是二进制的意思,然后使用文件类型的read方法,读取一些字zd节,再用struct.unpack()方法来解析二进制。
第一种方法是一次性读入文件(或文件的内前多少个连续字节)到一个数组中,因此,灵活性差。
第二容种方法灵活性很高,可以读取任意位置(使用文件的seek()方法跳跃位置)的二进制数据,再使用struct.unpack()方法来进行各种二进制解析。
提示:二进制文件是不保留存储方式的数据格式,因此,读二进制文件时应该知道二进制文件的存储格式。
7. python二进制文件的读取与写入可以分别使用 和 方法
可以使用read方法和readline方法