FIFO不停的发中断问题已经解决,具体看楼下参考。谢谢
伤心起航 !
新问题,flash上电后,FIFO接收中断工作不正常。但是在RAM运行正常,在flash下载后,debug中,点运行,就没有问题,有没有碰到过类似问题,谢谢!
发现发中断函数不停的在调用,估计是SCI配置问题,但对手册研究了半天,没发现问题。TI的手册很费神,以前用infineon的片子手册非常容易读。
(1)不发数据的时候,Sci_sendTimer1的值不停的在变,加断点也发现不停的在调用发中断函数。这个实在太奇怪了。。
(2)屏蔽掉SciaRegs.SCIFFTX.bit.TXFFINTCLR = 1; // Clear SCI Interrupt flag ,发中断函数完全不触发,我在while中发一次数据,也不会触发中断。
有这行代码,就不停的在触发发中断函数,实际没有发任何数据出来。
(3)FIFO中断收,没有问题。
哪位兄弟,帮我看一下。有没有碰到过类似问题。。在RAM里运行的。
发中断函数
interrupt void SCITXINTA_ISR(void) // SCI-A
{
// Insert ISR Code here
Sci_sendTimer1++;
SciaRegs.SCIFFTX.bit.TXFFINTCLR = 1; // Clear SCI Interrupt flag
// To receive more interrupts from this PIE group, acknowledge this interrupt
PieCtrlRegs.PIEACK.all = PIEACK_GROUP9;
}
串口初始化函数:
void InitSci(void)
{
// Initialize SCI-A:
SciaRegs.SCICCR.all = 0x0007; // 1 stop bit, No loopback
// No parity,8 char bits,
// async mode, idle-line protocol
SciaRegs.SCICTL1.all = 0x0003; // enable TX, RX, internal SCICLK,
// Disable RX ERR, SLEEP, TXWAKE
// Baud config
SciaRegs.SCIHBAUD = 0x0000;
SciaRegs.SCILBAUD = SCI_PRD;
// FIFO configure enable FIFO
SciaRegs.SCIFFTX.all = 0xC020;
SciaRegs.SCIFFRX.all = 0x0021;
SciaRegs.SCIFFCT.all = 0x00;
SciaRegs.SCICTL1.all = 0x0023; // Relinquish SCI from Reset
SciaRegs.SCIFFTX.bit.TXFIFOXRESET = 1;
SciaRegs.SCIFFRX.bit.RXFIFORESET = 1;
}
[
本帖最后由 elkite 于 2013-9-23 09:09 编辑 ]