树莓派串口通信 USB串口通信

文章目录

  • 树莓派串口通信 USB串口通信
    • 准备
    • 发送数据
    • 接收数据

如果不知道树莓派怎么使用USB串口通信的,欢迎浏览我的另一篇博客文章: 树莓派使用USB串口通信 CH340

这篇文章就以USB串口为例,简单的说下串口通信时常用的几个命令。注意:代码均为Python编写。
个人博客原址:树莓派串口通信 USB串口通信

准备

  • 树莓派4
  • 两个CH340
  • 串口助手

发送数据

  1. 最基础的发送数据方式

    '''
    ser.write(data)    # 发送数据data,data为字节型
    '''
    import serial
    ser = serial.Serial("/dev/ttyUSB0", 115200)
    ser.flushInput()    # 清除缓存
    ser.write("LightningMaster\r\n".encode())    # 发送数据  \r\n可以实现换行  encode()默认是'utf-8'
    

    运行这个代码就可以在串口助手上收到数据。

  2. 发送中文

    import serial
    ser = serial.Serial("/dev/ttyUSB0", 115200)
    ser.flushInput()    # 清除缓存
    ser.write("闪电丶教主\r\n".encode('gb2312'))    # 发送数据  \r\n可以实现换行
    

  3. 发送数据包 十六进制

    import serial
    import struct
    ser = serial.Serial("/dev/ttyUSB0", 115200)
    ser.flushInput()    # 清除缓存
    pack = struct.pack('BBBB', 0xaa, 6, 7, 0x55)    # 将数据打包 格式是unsigned char
    ser.write(pack)
    

    这个地方使用到了struct.pack,具体有啥作用可以自行百度去看看,我在这就不多说了。这里的作用就是将数据打包,返回格式是unsigned char 的字节串。

    可以使用这个函数给数据加上“头”“尾”之类的东西。

接收数据

'''
ser.read(num)    # 读取收到的num个字节的数据
ser.inWaiting()    # 可以获取还未读出的数据
'''
import serial
import struct
import time
ser = serial.Serial("/dev/ttyUSB0", 115200)
ser.flushInput()    # 清除缓存
while True:count = ser.inWaiting()    # 获取还有多少字符未读if count != 0:data = ser.read(count)    # 读取数据存到data中print(data)    # 打印接受到的数据time.sleep(0.1)    # 系统等待

运行代码,使用串口助手发送数据,可以在树莓派中看到返回值。

可以看到树莓派成功接收到了数据。

如果想把b’ '去掉可以使用代码

print(data.decode('utf-8'))

接收中文的话需要使用下面的代码

print(data.decode('gb2312'))

具体为什么使用encode和decode,可以自行查阅Python相关资料。

树莓派串口通信 USB串口通信 常用串口命令相关推荐

  1. Win系统下打开串口转换USB口的RS232串口,打不开问题

    一.[问题] 1. QT窗口程序想通过串口与设备通信,于是以QT的方式初始化好,由于串口(物理)转换USB的串口只有一个,别人用了,自己就没法用,然后用虚拟串口调试,一切都正常,把功能都实现了8成了. ...

  2. USB转串口与虚拟串口相关

    不是原创,网上查询整理. 目录 一.串口与并口 二.USB转串口.虚拟串口概念 三.串口占用问题 四.其他:多个程序共享一个串口数据 五.COM.COM+和DCOM与COM端口无关 一.串口与并口 ( ...

  3. 树莓派串口通信编码_树莓派3B/3B+与Rosbot通信02:USB与串口通信

    前言:在上一篇中,我们已经下载和安装好通信的各种库和其他东西,在这一篇中我们将介绍如何将树莓派与Rosbot连接设置和基础的代码编程. 串口通信 串口设置 1.设置波特率:进入minicom配置界面 ...

  4. 51单片机C语言波特率十六进制,理解51单片机串口通信的波特率与USB转串口通信...

    RS232 在我们电脑上,一般都会有一个9针的串行接口,这个串行接口叫做RS232接口,它和UART通信有关联,但是由于现在笔记本电脑不带9针串口,所以和单片机通信越来越趋于使用USB虚拟串口. 九针 ...

  5. 计算机串口连接原理,串口通信的原理及USB转串口通信

    串口通信的原理 串口通信(SerialCommunicaTIons)的概念非常简单,串口按位(bit)发送和接收字节.尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一 ...

  6. 树莓派装Ubuntu系统配置串口引脚与stm32通信

    说明 为了去掉usb转ttl接口,充分利用单片机本身的性能,因此需要配置相应的引脚作为串口进行与stm32的通信. 初始引脚 dtoverlay -a | grep uart 上面的命令可以查看串口资 ...

  7. android usb通讯波特率,USB串口的特殊波特率通信

    USB串口的特殊波特率通信是指波特率为非标准数值的任意波特率.由于这些波特率是非标的,所以从硬件到软件都有特殊要求和方法才可以实现.本文以最新2015款的波仕USB232ET转换器为例从硬件和软件两方 ...

  8. android usb转串及串口通信

    1.串口与USB转串口 这两种方式都可以实现android下软件与硬件的通信,串口要早于usb出现,在行业应用范围广,不过传输速度及便携性要逊于usb: 2.android 下与串口通信不需要或者很少 ...

  9. 树莓派使用mini串口与外部进行通信

    目录 一.外设IO口定义说明 ​二.Serial 配置 三.设置硬件串口为GPIO串口 四.minicom串口助手测试 一.外设IO口定义说明 从树莓派的相关资料我们可以看到,树莓派有两个串口可以使用 ...

最新文章

  1. Spring Boot 整合 Elasticsearch,实现 function score query 权重分查询
  2. Android开发必看知识,不看后悔
  3. Java中的String、StringBuilder、StringBuffer
  4. React学习:入门实例-学习笔记
  5. 用JS轻松实现一个录音、录像、录屏工具库
  6. 永恒边境白羊座服务器维护,永恒边境升级攻略 速升50级技巧
  7. python之网络编程1-socket-tcp与udp
  8. MyBatis 为什么需要通用 Mapper ? 1
  9. 让PHP支持页面后退的两种方法
  10. JavaMail(2)——给多人发送、抄送
  11. 云计算的发展趋势_云计算的未来发展趋势
  12. 2021新鲜出炉软件测试的真实面试题(一篇足以)
  13. plc和c语言和cnc,cnc数控编程和plc编程哪个难学
  14. 使用docker搭建couchbase集群
  15. 【CSS】CSS怎么设置小于12px的字体 浏览器限制最小字体大小解决方法
  16. Python :图像的手绘效果
  17. vue+d3实现横向树状图(节点使用矩形图展示信息)
  18. 『CPU飙高』在开发环境中,.NET如何排查CPU飙高原因
  19. Windowed reading and writing
  20. SAP ABAP 系列丛书推荐:PP 报工

热门文章

  1. TensorFlow实现模型评估
  2. RTSP向ZLM流媒体服务器的推流和拉流鉴权
  3. java中结束进程的方法_java关闭Process
  4. 双非末流一本面霸,十面阿里,七面头条,4个月斩获六个Offer!
  5. 河崙 傾覆饌盤湯 浩亭
  6. 浅论农村产业结构合理化
  7. 1553B通信项目开发笔记(二)bu61580芯片介绍
  8. 建筑吸音板的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  9. 笔记本触摸板失灵修复小技巧_想恢复图片原来的背景?PS修复操作小技巧
  10. 如何设计一个“好的”测试用例