python对串口蓝牙模块的 *** 作

python对串口蓝牙模块的 *** 作,第1张

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进制的数字等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10625858.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存