之前没有接触过硬件相关的工作, 因此对硬件的知识一知半解。 最近由于项目需要, 用到了串口通信以及串口跟蓝牙之间通信相关的东西。记录下来, 希望对新手有所帮助。 如有疏漏之处, 欢迎指正。

1 串口通信

https://www.jishulink.com/post/1857960 这篇博客对基础知识讲解的不错, 可以参看学习一下。

总结几点比较重要的:

  • 1 通信的双方波特率需要设置一致
  • 2 通信的双方校验方式(无校验, 奇校验, 偶校验)需要设置一致
  • 3 两个串口的电平要一致,且共地。
    另外总结几个我在项目中用到的,用代码的方式实现串口操作。

Matlab中串口操作:
参见我的另外一篇博客: matlab串口读写

Python中串口操作:

import serialser = serial.Serial(port="/dev/ttyUSB0", parity=serial.PARITY_EVEN, baudrate=9600, timeout=1)#write_data = bytearray([0x44, 0x62, 0x08, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCE, 0x4B])wri = ser.write(write_data)   #向串口写数据, 注意写数据的格式, 必要时可以用bytearray转一下out = ser.read(100)  # 从串口读数据, 必要时可以通过binascii 转格式

以上就是串口通信的基本操作, 比较简单。

2 串口与蓝牙通信

直接串口通信虽然比较简单, 但是有一个明显的缺点是需要用有线连接, 这通常是不方便的。 那么此时就需要无线通信方案了。

常用的无线方式是蓝牙, wifi。 蓝牙相比wifi的优势是低功耗, 抗干扰能力强; wifi的优势是传输速度快, 传输距离远。因为传输速率要求不高, 我采用的是蓝牙连接。

大致的应用场景如下:

蓝牙选用的是这一款: https://item.taobao.com/item.htm?spm=a1z10.3-c-s.w4002-22466397656.11.6b6a6433sDE3LH&id=616978694684 (在此声明, 没有打广告的意思)

这里遇到了一个坑,由于传感器和蓝牙通过串口直连, 因此也需要满足上述串口通信中说的3点, 即:

  • 1 通信的双方波特率需要设置一致
  • 2 通信的双方校验方式(无校验, 奇校验, 偶校验)需要设置一致
  • 3 两个串口的电平要一致, 并且传感器和蓝牙模块要共地。 (这里我曾经踩了一个坑, 由于所用的电源没有2个5V输出, 所以用了2个独立的电源供电, 结果一直无法通信, 换成用一个电源且共地就好了。)
    一开始买的蓝牙不支持校验(即校验方式是无校验, 因此没法用。

串口通信及串口转蓝牙相关知识相关推荐

  1. 树莓派串口通信 USB串口通信 常用串口命令

    树莓派串口通信 USB串口通信 文章目录 树莓派串口通信 USB串口通信 准备 发送数据 接收数据 如果不知道树莓派怎么使用USB串口通信的,欢迎浏览我的另一篇博客文章: 树莓派使用USB串口通信 C ...

  2. 树莓派已经通过网络连接通过串口通信在串口调试小助手打印与操作

    在树莓派编译运行 树莓派已经通过网络连接通过串口通信在串口调试小助手打印C gcc xxx.c -lwiringPi 源码 #include <wiringSerial.h> #inclu ...

  3. Android经典蓝牙相关知识

    1 蓝牙基础知识 1.1 蓝牙相关的权限 <!--想要用蓝牙进行通信则要申明bluetooth权限--> <uses-permission android:name="an ...

  4. micropython串口通信_MicroPython-ESP32串口通信-1Z实验室

    出品:1Z实验室 (1ZLAB: Make Things Easy) 概要 在本节课程阿凯为大家讲解了串口通信的接线方式,ESP32中的串口UART资源与相关API, 并给出了一个UART的小应用实例 ...

  5. android qt 串口通信,Qt串口通信开发之QSerialPort模块详细使用方法与实例

    Qt串口通信开发之QSerialPort模块详细使用方法与实例 发布时间:2020-10-23 12:19:05 来源:脚本之家 阅读:111 作者:沧海一笑-dj Qt串口通信基础及名词说明 串口通 ...

  6. STM32MP157(实验四)——串口通信(串口打印)

    文章目录 设计需求 一.基础知识 串行/并行 全双工/半双工/单工 同步和异步 通信速率 电平标准 硬件设计 IDE设计 MX设置 代码设计 实验现象 设计需求 使用串口打印调式信息 一.基础知识 在 ...

  7. 串口通信——S5PV210串口通信接口详解

    以下内容源于 朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除. 参考博客 s5pv210--串口通信 - biaohc - 博客园 一.S5PV210的串口控制器 S5PV210的串口控制器的相关内 ...

  8. python串口通信_python串口编程实例 - 全文

    Python是纯粹的自由软件, 源代码和解释器CPython遵循 GPL(GNU General Public License)协议. Python具有丰富和强大的库.它常被昵称为胶水语言,能够把用其 ...

  9. java串口通信DataRecive_串口通信之DataReceive事件触发时机

    环境:Windows PC.本机虚拟COM2连接COM3.串口调试助手COM2发数据 图1 1> ReceivedBytesThreshold为默认值1:2> 一次发送41个字节:3> ...

最新文章

  1. js调用ios的方法
  2. 一个关于wwf和linq的部署问题?
  3. element-UI中手动调用table排序
  4. 博弈论(基础概念+例题)
  5. 架构日趋复杂的今天,如何重构数据库和应用边界?
  6. CV Code | 本周新出计算机视觉开源代码汇总(含图像修复、目标检测、医学图像分割、度量学习等)...
  7. 语音识别端到端模型解读:FSMN及其变体模型
  8. 第一个程序(python)-helloworld_创建第一个python程序:‘Hello World!’
  9. 微信退款异步通知解密异常-填充无效,无法被移除
  10. IEnumerable.Select和SelectMany的区别
  11. 软件测试文档测试用例,软件测试用例文档模板(带实例)
  12. Windows 10 安装 IIS 管理器
  13. 最大值减最小值等于区间长度_一文帮你弄清楚电压和电流的有效值、瞬时值、平均值、最大值及其关系...
  14. Matlab中zeros和ones函数用法
  15. 公差基本偏差代号_基本偏差代号怎么确定
  16. 基于tabular包的Latex表格尺寸设置方法(列宽和行高)
  17. Web 攻防之业务安全:越权访问漏洞 测试.
  18. 基于Vue+Springboot的在线音乐网站
  19. java 多线程 一个处理卖面包,一个做面包
  20. 编程猫python讲师面试_你为什么从编程猫离职?

热门文章

  1. 坎公骑冠剑普系角色德魯伊坎納属性、专武曝光
  2. chromium 50 chromium57 版本编译启用 widevine 功能
  3. FTDI串口驱动装了后不显示COM号问题
  4. PostgreSQL(Pgsql)快速开始/ ubuntu、centos下PostgreSQL数据库安装配置/查看已经编译的pg 编译选项
  5. cmd中无法运行svn命令
  6. 远程控制软件vnc,偷偷告诉你4款超好用的远程控制软件vnc
  7. 《统计学》——思考题第八章假设检验(贾俊平)
  8. svg里stroke相关属性在css动画中的应用
  9. 改进的 A*算法的路径规划(路径规划+代码+毕业设计)
  10. HBASE分布式安装