串行口中断服务函数和其他中断本质上是一样的,达到特定的条件,向CPU申请中断,进入中断服务函数;
我特意在郭天祥老师的书上找到了一句话:当数据被写入SBUF寄存器后,单片机自动开始从起始位发送数据,发送到停止位的开始时,由内部硬件将TI置1,向CPU申请中断,接下来可在中断服务程序中做相应处理,也可选择不进入中断。接收数据时 RI 同理。
那么下面就有一个问题:串口中断是高电平触发还是上升沿触发?如果是高电平触发,多次响应时每次间隔时间是多久?
先来引述我在书上看到的一段话:中断服务函数中查询TI 和 RI进行判别, 然后分别处理。因此,两个中断请求标志位均不能由硬件自动置位,必须通过软件清0,否则将出现一次请求多次响应的错误。此处的一次请求多次错误很明显是高电平触发的。