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

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

1 串口通信

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

总结几点比较重要的:

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

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

Python中串口操作:

import serial

ser = 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个独立的电源供电, 结果一直无法通信, 换成用一个电源且共地就好了。)
    一开始买的蓝牙不支持校验(即校验方式是无校验, 因此没法用。
  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值