第十五届蓝桥杯单片机组——串口通信UART

文章目录

  • 一、什么是串口通信
  • 二、UART重要参数
  • 三、利用STC-ISP生成初始化代码
  • 四、使用UART发送和接收数据

一、什么是串口通信

  微控制器与外部设备的数据通信,根据连线结构和传送方式的不同,可以分为两种:并行通信串行通信
  并行通信:指数据的各位同时发送或接收,每个数据位使用一条导线。
  串行通信:指数据一位接一位地顺序发送或接收。
  串行通信有SPI、IIC、 UART等多种,最常见最通用的是指UART,大多数情况下,串口通信指的就是UART,我们这里所讲的也是UART。
  串行通信的制式有:单工、半双工、全双工三种。
  串行通信的主要方式有两种:同步和异步。
  同步串行通信:需要使用同一个时钟,以数据块为单位传送数据。
  异步串行通信:每个设备都有自己的时钟信号,通信中双方的波特率要保持一致,以字符为单位进行数据帧传送,一次传送一个帧。

二、UART重要参数

1.波特率:它表示的是数据传输的速率,单位是波特/秒。例如,9600波特率表示每秒可以传输9600比特的数据。
2.数据位:这个参数定义了实际的信息位数,常见的有5, 6, 7, 8位。大多数情况下,我们都是使用8位数据位。
3.停止位:停止位用来标志数据帧的结束,常见的有1和2位。大多数情况下,我们使用1位作为停止位。
4.校验位:校验位主要用来对数据进行错误检测。有些UART协议需要使用它,有些则不需要。校验位可以是无校验、奇校验或偶校验。

在51中我们重点就了解一下波特率和数据位就好了。

三、利用STC-ISP生成初始化代码

1、开发板晶振一定要设置正确,板子上的晶振频率为12Mhz。
2、波特率设置成9600,比赛中大概率也是用这个。
3、数据位长度设置位8bit
4、由于定时器1用作串口的波特率发生器,所以不能在使用定时器1做其他事情!!
在这里插入图片描述

四、使用UART发送和接收数据

未完待续…

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/634990.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

亚马逊云科技 WAF 部署小指南(六)追踪 Amazon WAF Request ID,排查误杀原因

众所周知,中国是全球制造业的巨大力量,许多中国企业通过 2B 电商平台网站进行商品销售和采购。在这些电商平台上,Web 应用防火墙(WAF)成为不可或缺的安全工具。然而,WAF 也可能导致误杀问题。一旦误杀发生&…

计算机毕设thinkphp+mysql+_vue房屋租赁系统h3sem

运行环境:phpstudy/wamp/xammp等 开发语言:php 后端框架:Thinkphp5 前端框架:vue.js 服务器:apache 数据库:mysql 数据库工具:Navicat/phpmyadmin 房屋租赁管理系统有不同的用户角色。不同的用户权限对应不…

【办公类-21-03】20240119 提取不连续的男女学号 set()和list法

背景需求:了解班级幼儿性别比例 查看点名册,发现中4班最初的学号是按照先男后女的方式排列,但是随着幼儿转出,空出一些学号,于是新插班的孩子就插入空的学号,空格插完了,就排在学号尾部。 我想…

Docker Consul详解与部署示例

目录 Consul构成 Docker Consul 概述 Raft算法 服务注册与发现 健康检查 Key/Value存储 多数据中心 部署模式 consul-template守护进程 registrator容器 consul服务部署(192.168.41.31) 环境准备 搭建Consul服务 查看集群信息 registrato…

YOLOv5改进 | 主干篇 | 华为GhostnetV1一种移动端的专用特征提取网络

一、本文介绍 本文给大家带来的改进机制是华为移动端模型Ghostnetv1,华为GhostnetV1一种移动端的专用特征提取网络,旨在在计算资源有限的嵌入式设备上实现高性能的图像分类。GhostNet的关键思想在于通过引入Ghost模块,以较低的计算成本增加了特征图的数量,从而提高了模型的…

深度剖析Spring循环依赖(实战Bug)

目录 前言1. 问题所示2. 原理分析3. 基本知识4. Lazy注解 前言 通过实战更好的回馈问题,意识更加深刻 起因是我出现如下问题之后,才意识到中了Spring的循环依赖了! 1. 问题所示 在执行项目的时候,出现如下问题,问题…

面试之Glide如何绑定Activity的生命周期

Glide绑定Activity生命周期 Glide.with() 下面都是它的重载方法,Context,Activity,FragmentActivity, Fragment, android.app.Fragment fragment,View都可以作为他的参数,内容大同小异,都是先getRetriever&#xff0…

016-Vue-黑马2023:前后端分离开发(在线接口文档),前端工程化、Element、vue编写一个完成页面、Vue路由、vue打包部署到nginx

第三节 前后端分离开发 1、介绍 开发模式 前后端混合开发:传统开发模式 前后端分离开发:当前最为主流的开发模式 页面原型需求案例:分析出接口文档 离线开发文档示例: 2、YAPI(官网已停用) 202…

汽车微电机行业研究:预计2029年将达到188亿美元

微电机行业是技术密集型行业,其起源于欧洲的德国、瑞士等国家,发展于日本。随着改革开放,中国作为发展中国家,承接了德国、日本等发达国家的汽车微电机产业转移,技术扩散逐步向我国转移。 微特电机广泛应用于信息处理设…

优化微信小程序更新体验:异步更新与强制更新方案解析

在微信小程序的开发和迭代过程中,新版本覆盖率的问题一直备受关注。由于小程序采用异步更新机制,在用户首次打开或冷启动时才会检查并下载新版本,导致部分用户无法及时应用上最新版本。为了解决这一问题,微信团队经过深入研究和讨…

设计社交网络的数据结构

1: 确定 Use Case 和 约束 Use Cases User 搜索某人然后看到被搜索人的最短路径Service 有高可用 约束和假设 状态假设 Traffic 不是平均分布的 一些被搜索者是更加受欢迎的,某些被搜索者只会被搜索一次图数据不适用与单个机器图的分布是轻量级的一亿个 User每…

canvas绘制N角形,锯齿状

查看专栏目录 canvas实例应用100专栏,提供canvas的基础知识,高级动画,相关应用扩展等信息。canvas作为html的一部分,是图像图标地图可视化的一个重要的基础,学好了canvas,在其他的一些应用上将会起到非常重…

在线扒站网PHP源码-在线扒站工具网站源码

源码介绍 这是一款在线的网站模板下载程序,也就是我们常说的扒站工具,利用它我们可以很轻松的将别人的网站模板样式下载下来,这样就可以大大提高我们编写前端的速度了!注:扒取的任何站点不得用于商业、违法用途&#…

kafka参数配置参考和优化建议 —— 筑梦之路

对于Kafka的优化,可以从以下几个方面进行思考和优化: 硬件优化:使用高性能的硬件设备,包括高速磁盘、大内存和高性能网络设备,以提高Kafka集群的整体性能。 配置优化:调整Kafka的配置参数,包括…

免费的爬虫软件【2024最新】

在国际市场竞争日益激烈的背景下,国外网站的SEO排名直接关系到网站在搜索引擎中的曝光度和用户点击量。良好的SEO排名能够带来更多的有针对性的流量,提升网站的知名度和竞争力。 二、国外网站SEO排名的三种方法 关键词优化: 关键词优化是SEO…

Red Hat Enterprise Linux 9.3 安装图解

引导和开始安装 选择倒计时结束前,通过键盘上下键选择下图框选项,启动图形化安装过程。需要注意的不同主板默认或者自行配置的固件类型不一致,引导界面有所不同。也就是说使用UEFI和BIOS的安装引导界面是不同的,如图所示。若手动调…

ITK + ANT,无法显示三维

背景:之前用ANT保存ima格式的数据,选择的是保存所有的序列 用python将dicom转为nii的格式, import nibabel as nib import torch"""不管是nii还是nii.gz都是二维的,为啥呢"""fobj nib.load("…

Qt弹框展示

1.相关说明 文件选择弹框、目录选择弹框、保存文件弹框、颜色选择弹框、字体选择弹框、进度条弹框、输入对话框、标准消息框等 2.相关界面 3.相关代码 #include "widget.h" #include "ui_widget.h" #include <QFileDialog> #include <QProgressD…

Red Hat Enterprise Linux 6.10 安装图解

引导和开始安装 选择倒计时结束前&#xff0c;通过键盘上下键选择下图框选项&#xff0c;启动图形化安装过程。需要注意的不同主板默认或者自行配置的固件类型不一致&#xff0c;引导界面有所不同。也就是说使用UEFI和BIOS的安装引导界面是不同的&#xff0c;如图所示。若手动调…

go 语言(九)----struct

定义一个结构体 type Book struct {title stringauth string }结构体使用 package mainimport "fmt"//定义一个结构体 type Book struct {title stringauth string }func main() {var book1 Bookbook1.title "Golang"book1.auth "zhang3"fmt…