各位仁兄,小弟现在遇到一个疑惑,请大家帮忙解决以下<br /><br />我有个DSP程序,是关于串口接收和发送,接收和发送我都用的是中断,其中接收是高优先,发送是低优先,今天突然发现我的发送中断处理函数没有被调用,即发送中断标志没有清,<br />问题<br />1\怎么我用串口调试,发送都是正常的呢,<br />2\我调用了发送函数,是不是IFR相应中断标志就置位了,总中断在产生中断时就关闭了吧,怎么还能继续产生其它中断,我还用了其它定时中断<br />;建立中断向量表<br /> .sect ".vectors"<br />RSVECT B _c_int0<br />INT1 B _c_int1<br />INT2 B _c_int2<br />INT3 B _c_int3<br />INT4 B PHANTOM<br />INT5 B _c_int5////现在是INT5 B PHANTOM<br />INT6 B PHANTOM<br />串口初始化<br />void SCI_Init()<br />{ <br /> SCICCR=0x0007; //空闲多处理器模式,8位数据位,停止位,无奇偶校验位<br /> SCICTL1=0x0013; //接收,发送,内部时钟使能SLEEP=1<br /> SCICTL2=0x0003; //接收中断使能<br /> SCIPRI=0x0040; //接受高中断优先级1,送低优先级5<br /> SCIHBAUD=0x0002; //40M,波特率设置为9600<br /> SCILBAUD=0x0008; <br /> SCICTL1=0x0033; //串口初始化完成 <br /> <br />}<br />发送函数<br />void SCI_Send(unsigned int senddata) <br />{<br /> SCITXBUF = senddata;<br />}<br />发送中断处理函数<br />void c_int5()<br />{<br /> if(PIVR!=0x07) //低优先级的SCI发送中断<br /> {<br /> enable();//开总中断<br /> return;<br /> }<br /> IFR = 0x10;<br /> enable();//开总中断<br />} |
|