python提供了丰富的module 对串口的 *** 作同样有对应的module:serial
环境:python35 蓝牙模块:HC-05 波特率38400
首先导入serial模块(通过pip install serial 安装)
获取串口ser 通过serialSerial(地址,波特率,超时时间)
创建线程监听串口数据
使用 serin_waiting() 获知数据量 这个函数返回当前串口收到的数据长度
收取数据后进行详细 *** 作
正常的做法是在打印的时候加一个串口的标识做输出字符串的前缀, 比如:
serial 1: xxxx
serial 2: yyyy
这样是不需要用两个窗口的,如果一定要两个窗口,那建议使用GUI程序来做。
pyserial默认的写入格式是字符串,并不是16进制的。接收到的也是字符串,除非你在接收端设置了默认接受hex格式,就会显示hex。我用过蓝牙串口和Arduino开发板的串口,收到的都是字符串。
1、写入的数据长度不一致。在使用Python的`serial`模块进行串口通信时,使用`write`函数写入数据时需要指定写入数据的长度,如果指定的长度与实际写入的数据长度不一致,就会导致写入的数据与实际写入的数据不同。
2、串口参数设置不正确。在使用Python的`serial`模块进行串口通信时,需要设置串口的通信参数,如波特率、数据位、校验位、停止位等。如果设置不正确,就会导致写入的数据与实际写入的数据不同。
3、串口通信过程中出现错误。在串口通信过程中,可能会出现一些错误,如数据丢失、数据重复等问题,这也会导致写入的数据与实际写入的数据不同。
串口模块的波特率比较特别,找了几个串口工具都不支持。。。所以,干脆用python自己来写了,其实已经好奇好久了,别人的工具各种不顺手。
需要pyserial的支持,兼容各种平台,不需要新编译二进制文件。
先贴一个定时发送的代码:
import serial
import time
ser = serialSerial('/dev/ttyUSB0', 250000, timeout=1)
print serisOpen()
words="gggggggggggggggg"
while (1):
print "send 256x\""+words+"\" to remotes"
startTime = timetime()
times = 256
while (times):
times -= 1
s = serwrite(words)
endTime = timetime()
print "use time: "+str(endTime-startTime)
print ""
timesleep(5)
serclose()
以上就是关于python对串口蓝牙模块的 *** 作全部的内容,包括:python对串口蓝牙模块的 *** 作、python,windows下,我创建了2个线程来不停接收2个串口的信息,并打印出来。怎么打印在不同的窗口、Python Serial 串口能不能发送16进制的数字等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)