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

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

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

一个字节 = 8位,单片机是10位的UART。

对于51单片机,先发送低位D0再发送高位。

起始位是低电平,结束位是高电平

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

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

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

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

主程序中将UARTSend_State置为1

相等时,

将UARTSend_State置为0

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

每次触发中断服务程序后,UARTSend_Index会加1

缓冲区的大小已知是16个

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

相关推荐
Dolphin_Home5 分钟前
笔记:SpringBoot静态类调用Bean的2种方案(小白友好版)
java·spring boot·笔记
暗然而日章21 分钟前
C++基础:Stanford CS106L学习笔记 4 容器(关联式容器)
c++·笔记·学习
盐焗西兰花1 小时前
鸿蒙学习实战之路:Tabs 组件开发场景最佳实践
学习·华为·harmonyos
_Kayo_1 小时前
Next.js 路由 简单学习笔记
笔记·学习·next.js
盐焗西兰花1 小时前
鸿蒙学习实战之路 - 瀑布流操作实现
学习·华为·harmonyos
酒尘&1 小时前
Hook学习-上篇
前端·学习·react.js·前端框架·react
qq_381454992 小时前
Python学习技巧
开发语言·python·学习
im_AMBER2 小时前
算法笔记 18 二分查找
数据结构·笔记·学习·算法
XINVRY-FPGA3 小时前
XC3S1000-4FGG320I Xilinx AMD Spartan-3 SRAM-based FPGA
嵌入式硬件·机器学习·计算机视觉·fpga开发·硬件工程·dsp开发·fpga
van久3 小时前
.Net Core 学习: Razor Pages -- EF Core简介
学习·.netcore