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

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

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

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

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

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

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

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

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

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

主程序中将UARTSend_State置为1

相等时,

将UARTSend_State置为0

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

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

缓冲区的大小已知是16个

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

相关推荐
滴滴滴嘟嘟嘟.14 分钟前
Qt自定义列表项与QListWidget学习
开发语言·qt·学习
Yvonne爱编码33 分钟前
零基础学习数据采集与监视控制系统SCADA
学习·信息可视化·信息与通信·数据可视化
程序员Xu36 分钟前
【LeetCode热题100道笔记】腐烂的橘子
笔记·算法·leetcode
IT199537 分钟前
Wireshark笔记-DHCP两步交互流程与数据解析
网络·笔记·wireshark
ST.J1 小时前
SQL与数据库笔记
数据库·笔记·sql
肥肠可耐的西西公主1 小时前
后端(JDBC)学习笔记(CLASS 1):基础篇(一)
笔记·学习
清风6666661 小时前
基于STM32单片机的酒驾检测设计
stm32·单片机·嵌入式硬件·毕业设计·课程设计
励志不掉头发的内向程序员2 小时前
从零开始的python学习——文件
开发语言·python·学习
恒森宇电子有限公司2 小时前
IP5326_BZ 支持C同口输入输出的移动电源芯片 2.4A的充放电电流 支持4LED指示灯
c语言·开发语言·单片机
涂山苏苏⁠2 小时前
STM32之ADC
stm32·单片机·adc