小白转行入门STM32----手机蓝牙控制STM32单片机点亮LED

目录

  • 引言导读
  • 一、通信基础知识
    • 习题
    • 习题
    • 习题
    • 1.1 通信到底传输的是什么?
    • 1.2 比特率和波特率
    • 1.1 双工和单工
    • 1.2 串行和并行
    • 1.3 异同通信和同步通信
  • 二、连接STM32单片机
    • 2.2.1 接线图
    • 2.2.1 硬件介绍和设置
    • 2.1 编程环境
    • 2.2 硬件接线
    • 2.3 编码
    • 2.3 手机控制二极管
引言导读
  1. 本文适合小白简单入门 , 大神请绕行 。想讲的尽量透彻 , 所以篇幅啰嗦 , 介意的绕行 。
  2. 蓝牙模块基本是通用的 , 所以看这一篇教程 , 如果你的蓝牙模块与我的不一样 , 也不要担心 , 原理是通的 。
  3. 蓝牙是通信的一种 , 故想要学好STM32与蓝牙连接 , 掌握一点点基本通信知识是需要的 。
  4. 本次涉及到的硬件包括STM32F103C8T6最小系统板(其实其他版本都是可以的)和蓝牙模块买的是集芯微的BLE5.0(这家挺便宜 , 就是资料少 , JDY-31 , HC-06等都可以) , 此外还需要面包板和杜邦线若干 。
  5. 买的蓝牙模块没有焊接排针 , 而且竟然是小号排针 , 又手残焊接不好 。最后 , 买了锡膏和热风机焊接 , 小号排针用网线代替了(网线也可以当作杜邦线用) 。不过锡膏有毒 , 所以焊接时候注意通风 , 使用时最好带手套或者之类的 , 具体自动百度或者bilibili 。
一、通信基础知识1.1 通信到底传输的是什么?在逻辑层面 , 通信传输的是比特也就是二进制数 。在物理层面上 , 当线路为电路时 , 发送方发送一个个持续小段时间的电压信号来表示这些二进制数 , 比如双方约定一个0.001秒的0V代表数字0 , 5V代表数字1 , 发送方发送先后发送两个持续0.001秒的0V和一个0.001秒的5V , 就是相当于发送了001 。这种持续一段时间的电压信号就是码元 。当线路为无线电波时 , 码元就是一份份的电波了 。由于电信号是一种波 , 所以可以认为我们在线路上传输了一个个波 。
1.2 比特率和波特率通信速度有多快呢?在逻辑层面上 , 用比特率(Bitrate)来衡量 , 它代表单位时间内传输的bit数量 , 单位是bit/s 。在物理层面上 , 使用波特率(Baudrate) , 它表示单位时间内传输的码元(即 , 波)数量 , 码元就是上面的提到的电平信号 , 所以叫做波特率 。通常下一个码元代表一个二进制数 , 这时比特率和波特率是相等 。也有不等的时候 , 比如用0V表示0 , 2V表示1 , 4V表示2 , 6V表示3 , 这时候一个码元代表一个四进制数 , 则比特率是波特率的二倍 。
习题开放题目 , 言之成理即可 , 只考虑一般情形 , 不考虑特殊情况 。
  1. 比特率和波特率的区别和联系?
1.1 双工和单工通信类似于AB市通车 , 码元类似于一辆辆汽车 。
名词定义例子单工通信通信线路是单向 , 从始至终都是发送方和接收方是固定的车子只能从A市到B市 , B市的车子不能开往A市 。双工通信线路是双向 , 数据可以从A流向B , 也可以从B流向A , 即通信双方都可以发信息给对方 , 又可以分为半双工和全双工A市的车可以开到B市 , B市的车子也可以到A市 。全双工线路全时段对双方开放 , 任何时间任何一方都可以发送信息给对方AB市之间路很宽 , 两市间车子可以自由来往半双工线路只能在某段时间内对某方开放 , 双方轮流使用线路 , 即指某时间内 , 只能一方发送一方接受 。AB两个城市间公路很窄 , 只能容纳一辆车通行 , AB两方约定8点-9点是车子只能从A市到B , 9-10点是B市到A市 , 这样轮流交替 。单工和双工是对应的 , 按照线路是双向的还是单向的进行划分 。全双工和半双工是成对 , 他们是按照线路是否全时间段对双方开放使用 。

经验总结扩展阅读