基于TI28377SPZPT的Demo板,结合Controlsuit例程sci_loopback_interrupts_cpu01工程,只是在SCIA初始化的过程中将RX管脚定义为GPIO64,TX管脚定义为GPIO65,原先的数值为28、29,如下为更改后的代码:
GPIO_SetupPinMux(64, GPIO_MUX_CPU1, 1);
GPIO_SetupPinOptions(64, GPIO_INPUT, GPIO_PUSHPULL);
GPIO_SetupPinMux(65, GPIO_MUX_CPU1, 1);
GPIO_SetupPinOptions(65, GPIO_OUTPUT, GPIO_ASYNC);
可是编译烧录测试时在GPIO65上示波器检测不到任何数据信号,在程序中发送数据的SciaRegs.SCITXBUF.all一直都有更新,不知道自己哪里配置的不对了?
另外,将SCIFIFO初始化的代码做如下更改:
SciaRegs.SCICCR.bit.LOOPBKENA = 0; // no loop back
SciaRegs.SCIFFTX.bit.SCIFFENA = 1;//enable FIFO mode.
SciaRegs.SCIFFTX.bit.TXFFST = 0;
SciaRegs.SCIFFTX.bit.TXFFINT = 1;
SciaRegs.SCIFFTX.bit.TXFFINTCLR = 1;
SciaRegs.SCIFFTX.bit.TXFFIENA = 1;
SciaRegs.SCIFFTX.bit.TXFFIL = 0;
SciaRegs.SCIFFRX.bit.RXFFOVF = 0;
SciaRegs.SCIFFRX.bit.RXFFOVRCLR = 0;
SciaRegs.SCIFFRX.bit.RXFFST = 0;
SciaRegs.SCIFFRX.bit.RXFFINT = 1;
SciaRegs.SCIFFRX.bit.RXFFINTCLR = 0;
SciaRegs.SCIFFRX.bit.RXFFIENA = 1;
SciaRegs.SCIFFRX.bit.RXFFIL = 16;
SciaRegs.SCIFFCT.all = 0x00;
SciaRegs.SCICTL1.all = 0x0023; // Relinquish SCI from Reset
//SciaRegs.SCIFFTX.bit.TXFIFOXRESET = 1;
SciaRegs.SCIFFTX.bit.TXFIFORESET = 1;
SciaRegs.SCIFFRX.bit.RXFIFORESET = 1;
编译烧录程序后再GPIO65的管脚上也还是没有TX信号出来,可实际上明明发送中断函数进去了啊??请高手指教了。。
kafei zhang:
谢谢你,自己粗心了,TX管脚上有数据波形了。现在将TX/RX两个DSP管脚直接相连,RX中断没有进去,自然也没有收到数据,不知道这个如何理解?
基于TI28377SPZPT的Demo板,结合Controlsuit例程sci_loopback_interrupts_cpu01工程,只是在SCIA初始化的过程中将RX管脚定义为GPIO64,TX管脚定义为GPIO65,原先的数值为28、29,如下为更改后的代码:
GPIO_SetupPinMux(64, GPIO_MUX_CPU1, 1);
GPIO_SetupPinOptions(64, GPIO_INPUT, GPIO_PUSHPULL);
GPIO_SetupPinMux(65, GPIO_MUX_CPU1, 1);
GPIO_SetupPinOptions(65, GPIO_OUTPUT, GPIO_ASYNC);
可是编译烧录测试时在GPIO65上示波器检测不到任何数据信号,在程序中发送数据的SciaRegs.SCITXBUF.all一直都有更新,不知道自己哪里配置的不对了?
另外,将SCIFIFO初始化的代码做如下更改:
SciaRegs.SCICCR.bit.LOOPBKENA = 0; // no loop back
SciaRegs.SCIFFTX.bit.SCIFFENA = 1;//enable FIFO mode.
SciaRegs.SCIFFTX.bit.TXFFST = 0;
SciaRegs.SCIFFTX.bit.TXFFINT = 1;
SciaRegs.SCIFFTX.bit.TXFFINTCLR = 1;
SciaRegs.SCIFFTX.bit.TXFFIENA = 1;
SciaRegs.SCIFFTX.bit.TXFFIL = 0;
SciaRegs.SCIFFRX.bit.RXFFOVF = 0;
SciaRegs.SCIFFRX.bit.RXFFOVRCLR = 0;
SciaRegs.SCIFFRX.bit.RXFFST = 0;
SciaRegs.SCIFFRX.bit.RXFFINT = 1;
SciaRegs.SCIFFRX.bit.RXFFINTCLR = 0;
SciaRegs.SCIFFRX.bit.RXFFIENA = 1;
SciaRegs.SCIFFRX.bit.RXFFIL = 16;
SciaRegs.SCIFFCT.all = 0x00;
SciaRegs.SCICTL1.all = 0x0023; // Relinquish SCI from Reset
//SciaRegs.SCIFFTX.bit.TXFIFOXRESET = 1;
SciaRegs.SCIFFTX.bit.TXFIFORESET = 1;
SciaRegs.SCIFFRX.bit.RXFIFORESET = 1;
编译烧录程序后再GPIO65的管脚上也还是没有TX信号出来,可实际上明明发送中断函数进去了啊??请高手指教了。。
kafei zhang:
回复 kafei zhang:
我刚才想到并将波特率降下来了,最终可以通过TX/RX两管脚直连收到数据了….
TI中文支持网



