中断分类
定时器中断
外部中断
串口中断
以上为自己遇到的中断总结,不是专业的中断分类
串口通信终端
一、如何接收一串数据
不管数据多少,串口都是一个字节一个字节的收的
如何设计,思路等,后续补充。
二、进入中断的条件
进入串口中断至少应该具备四个条件:
- 第一,串口使能;
- 第二,串口中断使能;
- 第三,开总中断;
- 第四,设置对应的中断向量及中断服务函数。
注意:USART模块初始化的顺序是:SWRST=1的情况下设置串口;后设置SWRST=0使模块正常工作;最后如果需要中断,则设置相应的中断使能。即,中断使能要在SWRST=0后设置。
如下程序中相应为:
ME2|=UTXE1+URXE1;//串口发送、接收使能;
IE2|=URXIE1;//串口接收中断使能;
_EINT(); //开总中断;
中断向量#pragma vector=UART1RX_VECTOR //接收中断向量。
三、中断标志位
当发送缓冲区UTXBUF中装入数时,发送中断标志位UTXIFGx被置位,即置1;当退出发送中断后,UTXIFGx自动被清0;有时需要IFG1&=~UTXIFG0操作是为清除POR造成的UTXIFG0置位;
因:当发生PUC或者SWRST=1时,UTXIFGx被置位。
每当有数据被收到并且装入到URXBUF中时,接收中断标志位URXIFGx被置位,即置1;当中断服务程序被启动或URXBUF被读出,URXIFGx自动复位。
四、中断使能位
IE1 |= UTXIE0;
IE1 |= URXIE0;
目前,还不是十分清楚其中机理,需要日后逐渐完善。
外部中断
P1和P2口的每个管脚都有中断功能
外部中断配置过程:
P1DIR &= ~BIT3;
P1IES = BIT3;
P1IE = BIT3;
P1IFG = 0;
_EINT();
第一步,将 第一步,将 第一步,将 P1DIR中的按键引脚设置为输入
第二步,设置 BIT3 位为下降沿中断,0为上升沿中断
第三步,打开 P1 BIT3 的中断
第四步,确认清空中断标志(外部进入之后不会自动除要手第四步,确认清空中断标志(外部进入之后不 会自动除要手
最后,打开总中断。
中断标志位
外部中断进入后不会自动清除中断标志,要手动清除,不然会持续进入中断函数。
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』