之前讲过中断的观点,没看过的小伙伴可以 “中断”-嵌入式的灵魂 看一下,本日给大家讲一下,三种中断中最不起眼的串口中断,说实话,串口中断不适宜单独讲,适宜放在通信里去讲。
大家都知道,我们做单片机想提高,肯定往通信连接的方向走,往这个方向就难免碰到串口通信的问题,本日我们就从最大略的UART(通用异步收发器)来讲,毕竟通信办法太多。

详细的通信什么的我就不讲了,单独讲。。。。

这里要明确一点,串口中断便是做事于串口的,别的地方用不着,而且以我的认知只有51保存了,而且发扬光大,别的都直接 上库 ,以是以下我用51单片机来讲。
开始:
单片机会通过一系列的操作将多位数据传出去或者传回来。
以上便是串口通信的核心,单片机在传出去或者回来的时候都会经由一个“容器”,这个“容器”专业名词是SBUF,记住 去和回来都是这个;
那问题来了,都是一个我们如何去用它,这时候我们就可以用串口中断了;
比如你现在正在往外发送数据,经由SBUF停下来了,只有串口中断开了你才能出去,像一个保安,回来也是一样,必须经由在串口中断才行;
详细怎么配置我用51程序给大家看一下:
#include <reg52.h>#define uchar unsigned char#definr uint unsigned int unsigned char flag,a,i;uchar code table[] = "I get";void init(){TMOD = 0x20;TH1 = 0xfd;TL1 = 0xfd;TR1 = 1;REN = 1;SM0 = 0;SM1 = 1;EA = 1;ES = 1;}void main(){init();while(1){if(flag == 1){ES = 0;for(i = 0;i < 6; i ++){SBUF = table[i];while(!TI);TI = 0;}SBUF = a;while(!TI);TI = 0;ES = 1;flag = 0;}}}void ser()interrupt 4{RI = 0;a = SBUF;flag= 1;}
之间一贯一直的开启或者关闭串口中断,便是为了防止进去的出来的懵逼。










