文章目录

  • 工具
    • 步骤

工具

工具:自己电脑双系统的ubuntu18.04,单片机esp8266,一个usb转ttl模块,ubuntu上已经下载了python的3.6和pip,还需要pip install serial
首先在windows下测试板子是否能顺利收发数据:
打开串口调试助手
这里不需要用usb转ttl插windows的usb口,直接把esp8266连安卓线插上就好

板子里的程序是发1亮灯,发0关灯,发其他的则原样返回,可见结果是对的,亮灯也如预期。

步骤

模块和单片机连接:
G-GND
5V-VIN
TXD-RX
RXD-TX
需要知识:串口通信 多线程 线程锁
打开串口权限
sudo chmod 777 /dev/ttyUSB0

注意杜邦线一定要接对,不然可能单片机没有上电都不知道
写代码:

import threading
import serial
import time
from time import sleep
from threading import Lock
from datetime import datetime
loops=[2, 4]
lock=Lock()
date_time_format='%y-%M-%d %H:%M:%S'
serial = serial.Serial('/dev/ttyUSB0', 115200, timeout=0.5)
def date_time_str(date_time):return datetime.strftime(date_time, date_time_format)def loop(n_loop, n_sec):lock.acquire(blocking=True,timeout=2)serial.write("1".encode())sleep(n_sec)print(f'线程({n_loop})开始执行:{date_time_str(datetime.now())},先休眠({n_sec})秒')serial.write("0".encode())sleep(n_sec)lock.release()print(f'线程({n_loop})休眠结束,结束于:{date_time_str(datetime.now())}')def begin(n_loop,sec):sleep(sec)serial.write("yes".encode())data = serial.read(20)print(data.decode())# 为线程定义一个函数def print_time(threadName, delay):serial.write("1".encode())sleep(delay)serial.write("0".encode())sleep(delay)def receive(threadName,delay):serial.write("999".encode())data = serial.read(20)print('this is'+str(data))sleep(delay)# 创建两个线程def main():print(f'---所有线程开始执行:{date_time_str(datetime.now())}')threads=[]n_loops=range(len(loops))t=threading.Thread(target=loop, args=(1, loops[0]))threads.append(t)m=threading.Thread(target=begin,args=(2,loops[1]))threads.append(m)for i in n_loops:      # start threadsthreads[i].start()for i in n_loops:  # wait for allthreads[i].join()  # threads to finishprint(f'---所有线程执行结束于:{date_time_str(datetime.now())}')if __name__ == '__main__':main()

结果:

亮灯也成功了。

然后记录一下关于python的将字典转化为json:

import jsonprint(json.dumps(list('abcde')))
dict = {"time":1,"localtion":9.8}
ni = json.dumps(dict)
print(dict)
print(ni)

【实例记录】在ubuntu上运行python实现与单片机多线程串口通信相关推荐

  1. 在docker上和ubuntu上运行InfoGAN

    InfoGAN是GAN的非常有名的改进,本文记录如何运行. 一.Docker上运行 1. 安装Docker 引用:https://www.cnblogs.com/linjj/p/5606687.htm ...

  2. 数据挖掘基础学习一:VMware虚拟机Ubuntu上安装Python和IPython Notebook(Jupyter Notebook)完整步骤及需要注意的问题(以ubuntu-18.04.3为例)

    数据挖掘基础学习一:VMware虚拟机Ubuntu上安装Python和IPython Notebook(Jupyter Notebook)完整步骤及需要注意的问题 (以ubuntu-18.04.3-d ...

  3. python怎么让py里面逐行运行_怎样在安卓上运行python

    "人生苦短,我用python" python丰富的开发库确实为广大使用者缩减了大量的开发时间.小ming没事用python跑个自动化脚本,枯燥乏味的工作就让电脑帮忙做. 怎样在安卓 ...

  4. python手机版打了代码运行不了-三款可以在安卓手机上运行Python代码的软件

    导语 READ 我相信大家平时大多数时间肯定都是在电脑上面敲Python代码,有时候出门外或者不方便使用电脑的时候,你是否曾想用手机就能编写和运行Python代码呢?本文将会介绍3款不同的安卓软件帮忙 ...

  5. python php linux-怎么在linux上运行python

    Linux默认是已经安装好了Python程序 目前来说,大多数的Linux发行版是安装了两个版本的Python程序 一个是Python 2.x 一个是Python 3.x 一些系统自带的程序文件需要P ...

  6. python程序在安卓上如何运行-在 android 上运行 python 的方法

    在android上运行python脚本,或者在android上使用python交互界面,对熟悉python的研究或开发人员来说,是一件很有吸引力的事情,因为python脚本真是非常高效,另外,有很多非 ...

  7. 安卓如何运行python_如何在android上运行Python代码?

    这个非常简单,Termux和QPython3这2个安卓APP就可以,都集成了Python解释器,可以直接编辑运行Python代码,下面我简单介绍一下: Termux 这是一个安卓高级终端APP,类似于 ...

  8. 如何用android下载python_如何在android上运行Python代码

    展开全部 在android上运行python脚本,或者在android上使用python交互界面,对熟悉python的研究或开发人员来说,是一件很有吸引力的e69da5e6ba906261696475 ...

  9. 手机上有没有学python的软件-三款可以在安卓手机上运行Python代码的软件

    导语 READ 我相信大家平时大多数时间肯定都是在电脑上面敲Python代码,有时候出门外或者不方便使用电脑的时候,你是否曾想用手机就能编写和运行Python代码呢?本文将会介绍3款不同的安卓软件帮忙 ...

最新文章

  1. “人在旅途”之随想以及旅游指南(travel.msra.cn)简介
  2. 【软件工程-Teamwork 3】团队角色分配和团队贡献分分配规则
  3. SLF4J和Logback日志框架详解
  4. winForm添加图标
  5. glassfish启动后不能进入部署页面_使用Jenkins实现项目持续集成部署
  6. 27例-基于MSP430单片机毕业设计实例+论文+程序+原理图
  7. 大一c语言论文700字,大二学年学生自我鉴定范文700字
  8. 第52届格莱美大奖完全获奖名单
  9. 企业宣传软文怎么写?手把手教大家撰写企业宣传软文
  10. [线性代数]n维向量(秦静老师主讲)
  11. office timeline 5|office timeline pro/plus 5(PPT时间轴制作插件) v5.00.00.00
  12. 计算机三级选择难点及解析
  13. 收藏 | 自然语言处理(NLP)数据集汇总(附下载链接)
  14. 详细分析软件测试的14种类型
  15. iwatch表盘壁纸图片_iwatch壁纸大全卡西欧表盘app
  16. 总文件夹下含有多个sdf,批量转换为SMILES并保存到csv中
  17. Qt之塔防游戏 c++(一)
  18. docker 搭建响应式个人博客
  19. Android过渡动画,发现掘金小秘密
  20. C语言基础知识——判断闰年

热门文章

  1. python与vfp做桌面数据库_VFP数据库系统开发实例(附图)
  2. IDEA好用的Servlet模板
  3. linux程序实例获取,Linux命令备忘实例(4)——获取内容
  4. android handler,Android中Handler原理
  5. 中国工科计算机专业,中国最受欢迎的4个工科专业,第1名有些意外,第3名副其实...
  6. java 网站计数器_Java Bean实现网页来访计数器
  7. 算法训练 猴子分苹果c语言,算法训练 猴子分苹果
  8. 十九、面试必考,Java中的this关键字
  9. 从近年顶会论文看领域自适应(Domain Adaptation)最新研究进展
  10. CIKM 2021 | 自监督学习在社会化推荐系统中的应用