https://m.toutiaocdn.com/group/6716026491689239044/?app=news_article&timestamp=1563807838&req_id=201907222303570100230601438916BD5&group_id=6716026491689239044

1、这节课我们来实现串口的写入与接收,同样查看pyserial的在线文档,查看数据的写入与发送。

2、Write方法,文档中表明,写的方法只能写bytes,所以我们在com.py,增加两个函数用来写数据:

def comwritebytes(self,b):

wlen=self.com.write(b)

return wlen

def comwritestring(self,b):

wlen=self.com.write(b.encode('utf-8'))

return wlen

一个用来直接发送bytes数据,另一个将string数据转为bytes再发送,接着我们需要更新下主界面:

增加一个line edite命名为txt_send,一个checkbox命名为cb_send,一个发送与接收按钮,分别命名为btn_send、btn_receive.

我们串口发送的代码已经完成了,那么我们将功能增加到界面中来。

1、在界面中发送string类型的数据,先更新最新的界面代码,在cmd中输入指令:pyuic5 -o uart.py uart.ui

接着在uartform.py中增加代码:

def WriteData(self):

try:

msg=self.new.txt_send.text()

cbcheck=self.new.cb_send.checkState()

if cbcheck:

pass

else:

self.com.comwritestring(msg)

except Exception as e:

self.ShowBox(str(e))

当cb_send没有被选中的时候,也就是默认发送string类型,如果我要发送hex数据,如:01 ff 00 12这类数据的时候呢?

我们来实现一个将hex数据转为bytes的代码:

def HexToBytes(self):

bl=[]

try:

text=self.new.txt_send.text()

slist=text.split(' ')

for e in slist:

b=int(e,16)

bl.append(b)

except Exception as e:

self.ShowBox(str(e))

return bl

将发送代码更新为:

def WriteData(self):

try:

slen=0

msg=self.new.txt_send.text()

cbcheck=self.new.cb_send.checkState()

if cbcheck:

bl=self.HexToBytes()

slen=self.com.comwritebytes(bl)

else:

slen=self.com.comwritestring(msg)

self.ShowMsg('发送数据长度'+str(slen))

except Exception as e:

self.ShowBox(str(e))

将函数绑定到按钮:self.new.btn_send.clicked.connect(self.WriteData)

运行一下,不打开串口发送,提示错误:

打开串口发送string:

勾选hex,发送:

提示数据格式错误,接着我们更改数据格式后发送:

到此为止,串口的数据发送我们已经完成,下一节课将实现串口接收数据。

python串口发送数据_第六课python来写串口助手-串口发送数据相关推荐

  1. python 声明变量类型_每日一课 | Python 检查变量的类型

    在Python中,我们可以使用type()来检查变量的类型. num = "3.141592653589793238"print(type(num)) pi = float(num ...

  2. C#之windows桌面软件第六课:(上集)串口工具实现数据校验、用灯反应设备状态

    C#之windows桌面软件第六课:(上集)串口工具实现数据校验.用灯反应设备状态 using System; using System.Collections.Generic; using Syst ...

  3. python连接mt4服务器_如何从MetaTrader 4/5终端向外部服务器发送数据?

    这是为了(也许)成为MetaTrader 4/5及其相应语言MQL4的指导性文章,它们都设置为上下文,并将数据发送到外部服务器.在 在我的特殊情况下,我正在构建一个基于Django/Python的we ...

  4. 第六课 Python Web企业门户网站-缓存

    目录 10.1 开发"首页"模块 10.1.1 轮播横幅 10.1.2 企业概况 10.1.3 新闻动态 10.1.4 通知公告 10.1.5 科研基地 10.1.6 联系我们 1 ...

  5. python表单数据系统_使用MultipartPostHandler用Python发布表单数据

    问题:使用Python的urllib2发布数据时,所有数据都是URL编码的,并作为内容类型发送:application/x-www-form-URL encoded.上载文件时,应将内容类型设置为mu ...

  6. 字节数组转换为图片_每日一课 | Python 3 TypeError:无法将“字节”对象隐式转换为str...

    将Python 2套接字示例转换为Python 3 whois.py import sysimport socket s = socket.socket(socket.AF_INET, socket. ...

  7. 第六课 Python新浪新闻爬虫最终整理总结

    代码整理封装如图: 6不6? Python简洁又强大! 至此,教程圆满结束,还有什么不懂的或有疑问的问题,欢迎大家加我的QQ:1099718640 顺便再送上完整代码,凑凑字数,哈哈~(其实推荐大家去 ...

  8. python将列表转换为字符串_每日一课 | Python将文件读入列表

    读取日志文件的Python示例,一行一行地进入列表. # With '\n', ['1\n', '2\n', '3'] with open('/www/logs/server.log') as f: ...

  9. python如何通过以太网发送指令_用scapy在python中编写一个以太网桥

    我想做这样的事情: 10.1.1.0/24 10.1.2.0/24 ------------ ------------ ------------ | | | | | | | | | | | | | A ...

最新文章

  1. 一看就懂!【英雄联盟锐雯】与 Python 详解设计模式之门面模式
  2. j2recover----最强大的jfs2文件恢复工具
  3. 学习python好学吗-零基础学python难吗?好学吗?
  4. Windows栈溢出原理
  5. 2.7万字还原行业面貌,《2019 AI金融风控行业研究报告》正式上线!...
  6. JavaScript三种弹出框(alert,confirm和prompt)用法举例
  7. python os模块方法_python os模块方法总结
  8. 华科团队发布 OVIS 遮挡视频实例分割基准数据集
  9. 为什么需要字节对齐?
  10. python xp系统_win XP的系统应该装哪个python的安装包?
  11. 高通about.html 文件,关于高通校准调用文件的说明文档
  12. C语言题库 part.1
  13. 西电2021计算机考研大纲,2021年西安电子科技大学硕士研究生833计算机学科专业基础综合考试大纲...
  14. dev cpp调试无法显示蓝条情况解决方案
  15. 用where in遇到null时的解决方法1
  16. 哪款蓝牙耳机玩吃鸡延迟低?四款低延迟游戏蓝牙耳机推荐
  17. 【安卓】设置应用的开机启动
  18. 客户体验和营销:您需要了解的 5 个最佳实践
  19. 第十五周作业——ZJM与生日礼物
  20. 【mysql】图文展示Mysql锁

热门文章

  1. Automagic Premium 安卓上的自动化神器
  2. html锚点滑动效果,【转载】HTML锚点效果改进平滑移动页面滚动特效实现技术
  3. Windows XP应用技巧
  4. [转] 送给优柔寡断和胡思乱想的朋友们---17条人生哲理
  5. .NET Core MVC更换网页背景图片
  6. Postman打开一直加载白屏
  7. APP常见测试点总结
  8. 机房重构中的权限问题
  9. AngularJS 构架模式
  10. 518华为鸿蒙发布会,荣耀智慧屏新品领衔518发布会 智慧生活近在眼前