单片机串口发送为空中断和发送完成中断有什么区别?

单片机串口发送的空中断和发送完成中断在触发条件和功能上存在明显的区别。以下是关于这两种中断的详细解释:

  1. 【发送为空】中断(Transmit Data Register Empty Interrupt)
    • 触发条件:当发送数据寄存器(TDR)为空时,即单片机已经将数据从发送数据寄存器(UART_DR)复制到移位寄存器并开始发送,但发送数据寄存器已经准备好接收新的数据字节时,空中断会被触发。
    • 功能:空中断的目的是通知单片机,它可以继续往发送数据寄存器中写入下一个待发送的字节。此时,尽管数据可能在移位寄存器中仍在传输(即,移位寄存器可能尚未完成当前字节的发送),但发送数据寄存器已经准备好接收新的数据。
  2. 【发送完成】中断(Transmission Complete Interrupt)
    • 触发条件:当移位寄存器完成当前字节的发送,并且发送数据寄存器中的所有数据都已被成功发送时,发送完成中断会被触发。这通常意味着整个数据包的发送已经完成。
    • 功能:发送完成中断的目的是通知单片机,整个发送操作已经完成,可以进行后续的处理或准备下一次的发送操作。此时,发送数据寄存器和移位寄存器都已为空,并且相关的状态标志(如TI标志位)会被设置,以指示发送操作的完成。

总结

  • 发送为空中断关注的是发送数据寄存器的状态,当其为空时触发,允许单片机继续写入新的数据字节。
  • 发送完成中断关注的是整个发送操作的状态,当所有数据都成功发送后触发,通知单片机发送操作已完成。

这两种中断在单片机串口通信中起着重要的作用,确保了数据的连续发送和正确的状态通知。

相关推荐
蓬荜生灰3 小时前
STM32(6)-- GPIO外设
单片机·嵌入式硬件
我爱我家diyer4 小时前
使用STM32的HAL库开发GD32F303CGT6
stm32·单片机·嵌入式硬件
新能源BMS佬大5 小时前
【仿真到实战】STM32落地EKF算法实现锂电池SOC高精度估算(含硬件驱动与源码)
stm32·嵌入式硬件·算法·电池soc估计·bms电池管理系统·扩展卡尔曼滤波估计soc·野火开发板
点灯小铭5 小时前
基于单片机的井盖安全监测与报警上位机监测系统设计
单片机·嵌入式硬件·毕业设计·课程设计
Hello_Embed6 小时前
USB 虚拟串口源码改造与 FreeRTOS 适配
笔记·单片机·嵌入式·freertos·usb
无垠的广袤6 小时前
【CPKCOR-RA8D1】RUHMI 转换 AI 模型
人工智能·python·嵌入式硬件·开发板
望眼欲穿的程序猿7 小时前
SDCC+Ai8051U 中断点灯
stm32·单片机·嵌入式硬件
youcans_8 小时前
【动手学STM32G4】(15)三路互补带死区 PWM 输出
stm32·单片机·嵌入式硬件·pwm·死区
小慧10248 小时前
外部中断与回调函数
stm32·单片机·嵌入式硬件
加斯顿工程师8 小时前
STM32F103C8T6驱动DS18B20温度传感器程序
stm32·单片机·嵌入式硬件