快捷搜索:  汽车  科技

单片机uart应用大全:物联网实战教程1.4

单片机uart应用大全:物联网实战教程1.4第5项:蓝牙4.0案例——手机控制RGB灯颜色第二部分:案例学习第2项:上位机开发——.Net第3项:移动开发——Android第4项:后端开发——Golang

物联网系列教程

一个很好的物联网(IoT)开发实战入门教程,图、文详细。供计算机、电子工程相关专业的在校生以及相关领域初学者、爱好者参考学习。涉及单片机、上位机、移动应用、服务器后台开发的知识,以及蓝牙4.0、以太网模块的使用实例。

单片机uart应用大全:物联网实战教程1.4(1)

目录

第一部分:基础入门

第1项:单片机开发——Arduino

  • 1.1 Arduino开发环境搭建(往期文章)
  • 1.2 点亮一个Led(往期文章)
  • 1.3 PWM操作(上期文章)
  • 1.4 UART的使用(本期文章)
  • 第2项:上位机开发——.Net

  • 2.1 winform快速入门(下期文章更新,两天更新一期)
  • 2.2 Serialport控件使用
  • 第3项:移动开发——Android

  • 3.1 安卓开发环境搭建
  • 3.2 HelloActivity分析
  • 3.3 LinearLayout与基本控件
  • 3.4 Intent与Activity的生命周期
  • 3.5 ListView与BaseAdapter
  • 3.6 Service学习
  • 3.7 Android权限机制
  • 3.8 BroadCastReciever学习
  • 第4项:后端开发——Golang

  • 4.1 go语言开发环境搭建
  • 4.2 go语言基础快速入门
  • 4.3 用go语言显示一个网页
  • 4.4 go语言web框架——gin
  • 4.5 部署go语言项目
  • 第二部分:案例学习

    第5项:蓝牙4.0案例——手机控制RGB灯颜色

  • 5.1 用串口控制RGB灯颜色
  • 5.2 用上位机控制RGB灯颜色
  • 5.3 蓝牙4.0简单介绍
  • 5.4 蓝牙4.0安卓例程源码阅读
  • 5.5 用安卓手机控制RGB灯颜色
  • 第6项:网络模块案例——温度采集系统开发

  • 6.1 Arduino温度传感器的使用
  • 6.2 ENC28J60模块的使用
  • 6.3 在网页上显示温度

  • 1.4 UART的使用
    UART的介绍

    这节课来介绍UART,也就是串口通信。先看一下百度百科上对UART的定义。

    UART是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传输和接收。

    这里,我主要提取三个关键词来分别解释,第一个“串行”,第二个“异步”,第三个“全双工”。

    串行与并行

    先来说说什么是串行和并行总线。

    以下这样图可以很好的解释。串行也就是只有一根线,一个周期传送1个bit,8个周期传送1个byte,速度传送较慢。并行通信采用多根总线,比如说8根总线的话,一个周期就可以传送一个byte,不过并行通信的缺点是传输距离短。

    单片机uart应用大全:物联网实战教程1.4(2)

    异步通信与同步通信

    再来说说什么是异步通信与同步通信。

    同步通信就是需要发送方和接收方有一个时钟,在同一个时钟下来进行需要数据的传输。而异步通信发送方和接收方有着自己的时钟,通过起始位和停止位来判断是否有数据,为了保证数据传输的可靠性,还会有一些校验位,用于判断数据是否有效,如奇偶校验等,读者可以自行百度了解。

    同步通信示意图:

    单片机uart应用大全:物联网实战教程1.4(3)

    异步通信示意图:(图中的0代表起始位,1代表停止位。)

    单片机uart应用大全:物联网实战教程1.4(4)

    另外,对于异步通信来说,还有一个不得不说的,就是波特率(每秒钟传送字符的速率),虽然异步通信不要求时钟严格一致。但是,发送端和接收端的时钟的周期也应该是一样的,这样才能保证接收端有效地对接受的数据进行判断。

    常见的波特率有:300、600、1200、2400、4800、9600、19200、38400、43000、56000、57600、115200。

    单工、半双工和全双工

    最后再看看什么是单工、半双工和全双工。

    其实概念很简单,通俗的来讲,单工就是只有一方可以发送数据,比如打印机,只接受数据。半双工就是两方都可以发送数据,但不能同时发送数据,比如对讲机,只能同时听一个人说话。而全双工则是两方可以同时传送数据,比如打电话,对方说着说着有那块说得不对了,你给他打断了。

    这张示意图可以很好的解释:

    单片机uart应用大全:物联网实战教程1.4(5)

    下图为两个设备(单片机和电脑或单片机之间)通过串口通信的接线图,将一方的RXD(接受数据端)接到另一方的TXD(),就接受另一方发送过来的数据;将一方的TXD接到另一方的RXD,就可以给另一方发送数据。

    单片机uart应用大全:物联网实战教程1.4(6)

    UART的使用

    通过上面的介绍,可以知道,串口就是Arduino和电脑(或其他设备)之间进行通信的桥梁,比如说,我们上传程序的时候,就是通过串口的方式上传的。
    回想一下我们的第一个Arduino程序。

    void setup() { Serial.begin(9600); } void loop() { Serial.println("Hello Arduino!"); delay(2000); }

    这里Serial.begin(9600)就是代表串口的初始化,把波特率设置为9600。之后Serial.println()会通过串口给电脑发送数据。串口通信是双工的,Arduino除了给电脑发送数据之外,还可以接受来自电脑的数据,打开串口监视器,上方就是电脑给Arduino发送数据的地方,下方则是接收到的数据。

    单片机uart应用大全:物联网实战教程1.4(7)

    接下来看一个发送与接受的例子,这个例子将电脑发送给单片机的数据,通过单片机后又返回给电脑。

    char temp; void setup() { Serial.begin(9600); } void loop() { while(Serial.available()){ //如果电脑给单片机发送了数据 就把同样的数据发送回去. temp=Serial.read(); Serial.print(temp); Serial.print(" "); } delay(1); }

    上传程序过后,打开串口监视器,在发送区输入“Hello Arduino!”并发送,看看接收区会不会收到返还的数据。

    单片机uart应用大全:物联网实战教程1.4(8)

    Okay,到现在UART的学习就学完了,单片机的部分也暂时结束了,在下一章当好中,我们将会用winform开发一个简单地串口调试助手(串口监视器),从而用电脑控制我们的Arduino。


    下期更新预告:

    第1部分:单片机开发——Arduino

  • 1.1 Arduino开发环境搭建(往期文章,点击前往查看)
  • 1.2 点亮一个Led(往期文章,点击前往查看)
  • 1.3 PWM操作(上期文章,点击前往查看)
  • 1.4 UART的使用(本期文章)
  • 第2项:上位机开发——.Net

  • 2.1 winform快速入门(下期更新这部分内容)
  • 三连加关注,往后不迷路

    往期哪里搞,文章里翻找

    猜您喜欢: