USART(1)

什么是USART

在这里插入图片描述
单片机上有的许多的外设 单片机通过这些外设实现特殊的功能 如果单片机想要和蓝牙模块实现数据的传输那么就也需要单片机有串口模块来和蓝牙模块的串口进行连接 相互传输数据 在单片机上的串口就叫USART USART就是单片机上的外设 来实现串口之间的通信功能
USART名字的含义在这里插入图片描述
一般用的异步模式比较多 最右边的UART就是不支持同步的模式 仅支持异步模式 RTS和CTS是流控信号的发送和接受 (串口的笔记有讲) RT表示可发送和接受数据

如何使用USART

USART是串口 用来发送数据和接受数据 通常知道CPU是程序运行的地方 实际的功能是通过片上外设来实现的 如何在CPU和USART建立联系呢? 就是通过寄存器组
在这里插入图片描述

当我们想要发送数据时 就先把想要发送的数据写入发送数据寄存器中 然后发送数据寄存器会把发送的数据通过TX引脚发送出去
接收数据也是如此 先把要接受的数据通过RX引脚解析然后放入接收寄存器中 通过程序读取到CPU中
在这里插入图片描述

USART的工作原理

什么是串并转换
在这里插入图片描述
如果要发送一个8个bit的数据 串行就一个一个bit的发送通过一根线 而并行就是同一时间一次性发送8个bit位 串行转并行和并行转串行如图所示
在这里插入图片描述
在数据的传送中先把数据一次性8个bit位写入发送数据寄存器 然后转串行通过TX引脚发送出去
数据也是串行进来需要转换为并行一次性读取8个位 需要串行转并行
移位寄存器
在这里插入图片描述
移位寄存器每动作一次比特位就向右移动一位
串转并电路
在这里插入图片描述
并行写入数据 01011010(0x5a)然后串行通过TX口输出 还是串口的输出规则LSB位输出 先传数据最低有效位转换为01011010输出
在这里插入图片描述
串行数据传入然后并行读取
USART的基本模型
在这里插入图片描述
红圈和篮圈分别代表的是并转串电路和串转并电路
如CPU上方就是要发送的数据 写入 发送数据寄存器通过并转串电路通过TX引脚发送出数据
CPU下方的变量A是用来读取接收数据寄存器中的数据的

USART

USART的基本框图
在这里插入图片描述
绿框代表着串行转并行或者并行转串行的电路图 右侧灰色的发送和接收控制电路对外部输出波形 辨析外部传进来的波形
其实这整张图描绘的是USART的寄存器组
CR配置寄存器(黄色的寄存器)用来配置参数的在串口传输数据都是以数据帧的形式传输 那么设置几位数据位 是否使能校验位 使用奇校验还是偶校验 停止位的长度 等等都是在配置寄存器中来配置的
SR寄存器就是粉色的寄存器 就是读取USART的状态的 在发出数据的过程中把数据写入发送数据寄存器通过并行转串行电路把数据一位一位的发送出去 那么我们如何知道数据何时发送出去呢? 那么就查询SR寄存器 当SR寄存器的某个bit位为1就表示数据发送完成才可以重新写入数据
读取数据也是如此当某个bit位为1才可以去读取数据
BRT寄存器 表示传输数据的速度是快还是慢 就是每秒钟发送码元的个数
IER寄存器 中断使能寄存器 对于USART不仅可以普通模式进行编程还可以用中断模式进行编程

USART的参数配置

1.数据帧格式的设置(CR寄存器)
在这里插入图片描述
相应参数的设置如图所示
数据传输方向的选择 在这里插入图片描述
通过软件的编程向CR配置寄存器对应的bit位写入对应的值就可以关闭或者打开TX和RX开关 来完成数据的传输方向选择

波特率的设置


波特率产生的原理
在这里插入图片描述
移位寄存器每次活动都数据都移位一次 输出一个码元 那么如果可以控制移位寄存器的活动速率那么就可以控制码元输出的速率 而移位寄存器活动的速率就是脉冲信号的速率 看时钟 当时钟的上升沿到来时移位寄存器就活动一次 控制时钟的频率控制(脉冲信号)的频率就可以控制移位寄存器的活动速率 从而控制输出的码元速度 从而控制波特率
任务就转移到了如何去控制脉冲信号在这里插入图片描述
在单片机使用外设之前都要开启时钟 UASRT也是一个外设也要开启时钟 那么就要控制时钟来控制波特率 但是时钟的频率都是固定的 就要通过分频(控制不同的分频数)来控制波特率
具体电路在这里插入图片描述
那么具体的电路图对应就是这个灰色的框对应着分频系数再通过波特率的寄存器输出我们想要得到的波特率
在这里插入图片描述
要使得72mhz输出波特率9600 就要使得分频器和16相乘得到7500的分频系数 就要使得分频器的分频系数为468.75 通过设置波特率寄存器得到
在这里插入图片描述
总电路图
在这里插入图片描述
USART的总开关
在这里插入图片描述
练习在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于51单片机步进电机节拍步数正反转LCD1602显示( proteus仿真+程序+原理图+设计报告+讲解视频)

基于51单片机步进电机节拍步数正反转LCD1602显示 📑1. 主要功能:📑2. 讲解视频:📑3. 仿真📑4. 程序代码📑5. 设计报告📑6. 设计资料内容清单&&下载链接📑[资料下…

基于SSM的宠物医院管理系统

基于SSM的宠物医院管理系统的设计与实现~ 开发语言:Java数据库:MySQL技术:SpringMyBatisSpringMVC工具:IDEA/Ecilpse、Navicat、Maven 系统展示 主页 后台 摘要 随着人们对宠物健康关注的增加,宠物医疗服务的需求也…

许战海战略文库|企业竞争优势三大获取路径:产业、品牌和产品竞争优势

在快速发展和变革的全球化市场中,企业面临着持续的竞争压力。要在这种环境中脱颖而出,企业需要建立持久的竞争优势。通常,竞争优势可以从三个主要路径来获取:产业竞争优势、品牌竞争优势和产品竞争优势。 1. 产品竞争优势为什么很…

电子科技大学 分布式系统 期末复习笔记

第一章 为什么需要分布式系统:功能分离,固有的分布性,负载均衡,可靠性,经济性。 定义:分布式系统是这样一种系统,其中位于联网计算机上的组件仅通过传递消息来通信和协调它们的操作。 特点&am…

线性表的概念

目录 1.什么叫线性表2.区分线性表的题 1.什么叫线性表 线性表(linear list)是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串… 线性表在逻辑上是…

【Vue配置项】 computed计算属性 | watch侦听属性

目录 前言 computed计算属性 什么是计算属性? Vue的原有属性是什么? 得到的全新的属性是什么? 计算属性怎么用? 计算属性的作用是什么? 为什么说代码执行率高了? computed计算属性中的this指向 co…

【Java 进阶篇】JQuery 遍历 —— 无尽可能性的 `each` 之旅

在前端的征途中,操作元素是开发者不可避免的任务之一。而在 JQuery 中,each 方法则是处理这个任务的得力助手。本文将深入探讨 each 方法的奇妙之处,以及它与原生的 for...of 循环的关系,带你领略无尽可能性的遍历之旅。 起步&am…

modbusRTU通信简单实现(使用NModbus4通信库)

本文实现ModbusRTU通信,使用的是NModbus4通信库,使用 Modbus Slave是一个模拟Modbus协议从机的上位机软件,主要用于模拟测试跟其他主机设备通信的过程。与之成套存在的另一个软件--Modbus Poll,则是模拟Modbus协议主机的上位机软件…

元宇宙数字展厅无代码编辑工具的功能特点

商场如战场,营销是每个企业都必须重视的环节。随着科技的发展,3D展示营销制作平台作为企业快速搭建3D互动展厅的SaaS平台,逐渐崭露头角,为企业提供了诸多便利,让营销变得更加高效和引人入胜。 为企业提供身临其境的产品…

【EI会议征稿】第五届人工智能与机电自动化国际学术会议(AIEA 2024)

第五届人工智能与机电自动化国际学术会议(AIEA 2024) 2024 5th International Conference on Artificial Intelligence and Electromechanical Automation 第五届人工智能与机电自动化国际学术会议(AIEA 2024)将于2024年3月8-10…

算法竞赛备赛进阶之状态机模型训练

目录 1.大盗阿福 2.股票买卖IV 3.股票买卖V 4.设计密码 算法状态机(ASM)图是一种描述时序数字系统控制过程的算法流程图,其结构形式类似于计算机中的程序流程图。 ASM图是用一些特定符号按规定的连接方式来描述数字系统的功能。应用ASM图…

基于JavaWeb+SSM+购物系统微信小程序的设计和实现

基于JavaWebSSM购物系统微信小程序的设计和实现 源码获取入口前言主要技术系统设计功能截图Lun文目录订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 源码获取入口 前言 第一章 绪 论 1.1选题背景 互联网是人类的基本需求,特别是在现代社会,…

信号的机制——信号处理函数的注册

在 Linux 操作系统中,为了响应各种各样的事件,也是定义了非常多的信号。我们可以通过 kill -l 命令,查看所有的信号。 # kill -l1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP6) SIGABRT 7) SIGBUS …

计算机毕业设计 基于SpringBoot的医院档案管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

使用 SMI 指标增强股票分析:amCharts JS Crack

使用 SMI 指标增强股票分析 2023 年 11 月 16 日 amCharts 5:股票图表 v5.5.3 增加了对随机动量指数指标的支持,帮助用户做出更明智的交易决策。 amCharts 5:股票图表提供了用于显示基于时间的数据的分析工具,无论是金融、股票还是…

使用群晖Docker搭建HomeAssistant并实现异地公网访问

🔥博客主页: 小羊失眠啦. 🎥系列专栏:《C语言》 《数据结构》 《Linux》《Cpolar》 ❤️感谢大家点赞👍收藏⭐评论✍️ 使用群晖Docker搭建HomeAssistant并实现异地公网访问 文章目录 使用群晖Docker搭建HomeAssistant…

Mac安装Homebrew

方式一:官网(很慢,不推荐) curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh方式二: 1、执行以下命令 /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/ma…

StableDiffusion(六)——局部重绘

目录 一、局部重绘 1.局部重绘基本操作 ①打开方式 ②使用方法 ③核心参数解析 2.局部重绘(手涂蒙版)功能应用 3.局部重绘(上传蒙版)功能应用 ①选择选区 ②蒙版制作 一、局部重绘 当我们在进行AI绘画的过程中经常会出现…

JavaWeb[总结]

文章目录 一、Tomcat1. BS 与 CS 开发介绍1.1 BS 开发1.2 CS 开发 2. 浏览器访问 web 服务过程详解(面试题)2.1 回到前面的 JavaWeb 开发技术栈图2.2 浏览器访问 web 服务器文件的 UML时序图(过程) ! 二、动态 WEB 开发核心-Servlet1. 为什么会出现 Servlet2. 什么是…

linux 查看命令使用说明

查看命令的使用说明的命令有三种,但并不是每个命令都可以使用这三种命令去查看某个命令的使用说明,如果一种不行就使用另外一种试一试。 1.whatis 命令 概括命令的作用 2.命令 --help 命令的使用格式和选项的作用 3.man 命令 命令的作用和选项的详细…