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

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

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

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

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

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

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

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

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

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

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

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

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

http://www.xdnf.cn/news/12397.html

相关文章:

  • C# 使用正则表达式
  • React-表单受控绑定和获取Dom元素
  • 图片切割工具:智能分割长图并控制文件大小
  • Flask 核心概念速览:路由、请求、响应与蓝图
  • 吃透 Golang 基础:使用 encoding/json 实现 Golang 数据结构与 JSON 对象的转换
  • [论文阅读] 人工智能 | 大语言模型计划生成的新范式:基于过程挖掘的技能学习
  • FART 脱壳某大厂 App + CodeItem 修复 dex + 反编译还原源码
  • Halcon透视矩阵
  • 基于深度强化学习的Scrapy-Redis分布式爬虫动态调度策略研究
  • RNN和CNN使用场景区别
  • Windows平台RTSP/RTMP播放器C#接入详解
  • 11-Oracle 23ai Vector Embbeding和ONNX
  • 正则持续学习呀
  • Kerberos面试内容整理-开源 Kerberos 实现(MIT Kerberos、Heimdal 等)
  • STM32 控制12VRGB灯带颜色亮度调节,TFTLCD显示
  • 全面理解 Linux 内核性能问题:分类、实战与调优策略
  • 【vLLM 学习】Cpu Offload Lmcache
  • 硅基计划2.0 学习总结 陆 抽象类与接口
  • 电磁加热和铁锅温升的讨论
  • Tesseract配置参数详解及适用场景(PyTesseract进行OCR)
  • 【Survival Analysis】【机器学习】【3】 SHAP可解釋 AI
  • 6.6 计算机网络面试题
  • scikit-learn机器学习
  • 固态继电器与驱动隔离器:电力系统的守护者
  • Nuxt.js 布局系统详解:构建可复用页面框架
  • 豆包和deepseek 元宝 百度ai区别是什么
  • 3B模型大概占多少存储
  • My图床项目
  • [蓝桥杯]采油
  • 使用VTK还是OpenGL集成到qt程序里哪个好?