当前位置: 首页 > news >正文

学习笔记|串口通信的基础知识|同步/异步|常见的串口软件的参数|STC32G单片机视频开发教程(冲哥)|第二十集:串口通信基础

目录

  • 1.串口通信的基础知识
    • 串口通信(Serial Communication)
    • 同步/异步?
    • 全双工?
    • 常见的串口软件的参数
  • 2.STC32的串口通信实现原理
    • 引脚选择
    • 模式选择
  • 3.串口通信代码实现
    • 编写串口1通信程序
    • 测试
  • 总结

1.串口通信的基础知识

百度百科:串口通信的概念
什么是通信?
例如U盘和电脑,我们电脑需要往U盘存东西,而U盘上只有四个触点,除去一个电源一个地,只剩下两个引脚了。此时我们坑定不能像点亮LED那样单纯的给他两个引脚上输出个高低电平就能写数据了对吧。总不至于输出一个高电平就能在U盘里写入“STC32位8051单片机就是牛!”这么一句话了吧。
通信指设备之间通过一定的协议进行的信息交换。
在这里插入图片描述
每次发送一位数据的称为串行通信,多位一起传输的称为并行通信。
今天要讲的串口通信是串行通信的其中的一种!
stc共有4个串口!串口1/2和3/4的主要区别在这里,这节课主要讲异步串口。
在这里插入图片描述
在这里插入图片描述

串口通信(Serial Communication)

是指外设和计算机间,通过数据信号线 、地线、控制线等,按位进行传输数据的一种通讯方式。这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,但其传输速度比并行传输低。
在这里插入图片描述

同步/异步?

在这里插入图片描述
①以字符为单位传送信息。
②相邻两字符间的间隔是任意长。
③因为一个字符中的比特位长度有限,所以需 要的接收时钟和发送时钟只要相近就可以。
④异步方式特点简单的说就是:字符间异步,字符内部各位同步。
在这里插入图片描述
①以数据块为单位传送信息。
②在一个数据块(信息帧)内,字符与字符间无间隔。
③因为一次传输的数据块中包含的数据较多,所以接收时钟与发送进钟严格同步,通常要有同步时钟。

全双工?

在这里插入图片描述

常见的串口软件的参数

●波特率? 例如9600的波特率意味着每秒钟可以 发9600位的数据。
●数据位?
●校验位?
●停止位?
在这里插入图片描述

在这里插入图片描述
●传输距离
通信距离很短,如何解决?
在这里插入图片描述
在这里插入图片描述
●串口有什么用
在这里插入图片描述

2.STC32的串口通信实现原理

引脚选择

在这里插入图片描述

模式选择

在这里插入图片描述
在这里插入图片描述
每一种模式的配置参考手册,这里不再复述。

3.串口通信代码实现

在这里插入图片描述
在这里插入图片描述

编写串口1通信程序

测试

在这里插入图片描述

总结

1.学会串口的一专业名词。
2.学会串口的配置和使用(也可以去学习一下试验箱代码, 里面的代码非常全面)

课后练习:
1.串口发送字符Ax\r\n,(x表示0-7)板子点亮对应LED
2.串口发送Bxxxx\r\n,xxxx表示一个四位数,四位数码管显示这个4位数
2.串口发送Z\r\n,板子给电脑发送“Hello STC”;
3.串口发送字符Cx\r\n,(x表示0-1)板子打开/关闭蜂鸣
4.串口发送字符Dx\r\n,板子通过串口发送当前温度给电脑。
能独立做出这个实验的话,说明你已经快出师了。

http://www.lryc.cn/news/184108.html

相关文章:

  • Golang接口实现OCP原则
  • 【论文笔记】SVDM: Single-View Diffusion Model for Pseudo-Stereo 3D Object Detection
  • C++之sqlite数据库读写
  • 大模型应用疯狂加速,洗牌却在静悄悄进行了
  • oracle后台进程详解#进程结构
  • 解决DDP的参数未参与梯度计算
  • cpp primer笔记100-拷贝控制
  • 【数据库——MySQL】(16)游标和触发器习题及讲解
  • javascript二维数组(9)toString的用法
  • OpenAI重大更新!为ChatGPT推出语音和图像交互功能
  • 【开发篇】十六、SpringBoot整合JavaMail实现发邮件
  • 如何在Ubuntu系统部署RabbitMQ服务器并公网访问【内网穿透】
  • Flutter笔记:用于ORM的Floor框架简记
  • Zabbix自定义脚本监控MySQL数据库
  • 【Spatial-Temporal Action Localization(五)】论文阅读2020年
  • Linux基本指令(中)——“Linux”
  • OWASP Top 10漏洞解析(3)- A3:Injection 注入攻击
  • Java自定义类加载器的详解与步骤
  • 完美清晰,炫酷畅享——Perfectly Clear Video为你带来卓越的AI视频增强体验
  • 如何让FileBeat支持http的output插件
  • 解密人工智能:决策树 | 随机森林 | 朴素贝叶斯
  • web:[极客大挑战 2019]BabySQL
  • DRM全解析 —— plane详解(1)
  • 数据结构总结
  • 在SOLIDWORKS搭建一个简易的履带式机器人
  • C# 为什么要限制静态方法的使用
  • 【已解决】Pyecharts折线图,只有坐标轴没有折线数据
  • win10搭建Selenium环境+java+IDEA(3)
  • String 、Stringbuffer、StringBuilder区别
  • 如何提升爬虫IP使用效率?精打细算的方法分享