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

【单片机期末】串行口循环缓冲区发送

串行口分为正在发送数据和空闲状态

单片机的程序可以分为两种:主程序和中断服务程序,其中主程序可以被中断服务程序打断。

一个字节 = 8位,单片机是10位的UART。
对于51单片机,先发送低位D0再发送高位。
起始位是低电平,结束位是高电平

如果往串行口内发送了数据,那么会导致中断再次产生,如果没有往串行口里发送数据,则主程序中就不会再次产生中断。

如果要送出7个数字,就将UARTSave_Index从5变成7。

主程序什么时候知道有数据要往外发送?

触发串行口中断就会进入到中断服务程序中。

主程序中将UARTSend_State置为1
相等时,
将UARTSend_State置为0

串行口循环缓冲区的方式非常难理解,这是一个主程序和中断服务程序相互交织的过程。

每次触发中断服务程序后,UARTSend_Index会加1
缓冲区的大小已知是16个

回环的目的是让头和尾相接,因为能实现回环,所以可以实现缓冲区不停地被重复利用,相当于是一个无穷大的缓冲区。
​​​​​​​

http://www.lqws.cn/news/186139.html

相关文章:

  • 单片机内部结构基础知识 FLASH相关解读
  • Flask 核心概念速览:路由、请求、响应与蓝图
  • 深入理解二叉搜索树:原理到实践
  • LeetCode 热题 100 74. 搜索二维矩阵
  • 【Linux基础知识系列】第十四篇-系统监控与性能优化
  • 使用VSCode开发Django指南
  • npm install的原理
  • 自制喜悦字贴
  • 华为×小鹏战略合作:破局智能驾驶深水区的商业逻辑深度解析
  • Qt(part1)Qpushbutton,信号与槽,对象树,自定义信号与槽,lamda表达式。
  • 使用WebSocket实时获取印度股票数据源(无调用次数限制)实战
  • QuaggaJS用法详解
  • vue生成二维码图片+文字说明
  • Vue 组件库发布实战(含 TypeScript 支持)
  • 课消管理软件,教培机构进入系统管理时代
  • 高温IC设计带来的挑战和问题
  • 深入理解 transforms.Normalize():PyTorch 图像预处理中的关键一步
  • Javascript 编程基础(5)面向对象 | 5.1、构造函数实例化对象
  • JavaScript 原型与原型链:深入理解 __proto__ 和 prototype 的由来与关系
  • 区块链技术相关
  • 李沐《动手学深度学习》d2l安装教程
  • JS面试常见问题——数据类型篇
  • Java并发编程面试题
  • 【Android】Android Studio项目代码异常错乱问题处理(2020.3版本)
  • MySQL体系架构解析(二):MySQL目录与启动配置全解析
  • 模板方法模式:优雅封装不变,灵活扩展可变
  • API标准的本质与演进:从 REST 架构到 AI 服务集成
  • “一代更比一代强”:现代 RAG 架构的演进之路
  • 动力电池点焊机:驱动电池焊接高效与可靠的核心力量|比斯特自动化
  • Significant Location Change