|
谁能帮我看看这个2812SCI小程序,一直弄不对
[复制链接]
#include "DSP28_Device.h"
#include "DSP28_Sci.h"
unsigned int y[3];
int i,j;
void main()
{
/*初始化*/
InitSysCtrl();
DINT;
InitPieCtrl();
IER=0x0000;
IFR=0x0000;
InitPieVectTable();
InitSci();//初始化SCI
for(i = 0; i < 3; i++)//初始化变量
{
y = 0;
}
i = 0;
#if SCIA_INT //设置中断服务程序入口地址/
EALLOW;
PieVectTable.TXAINT = &SCITXINTA_ISR;
EDIS;
IER |= M_INT9; //开中断
#endif
EINT; // Enable INTM
ERTM; // EnableDBGM
for(;;)
{
for(i=0;i<3;i++)
{
y=i;
j=1;
while(SciaTx_Ready()==1&&j==1)
{
SciaRegs.SCITXBUF=y;
j=0;
}
}
}
}
其中
void InitSci(void)
{
// Initialize SCI-A:
EALLOW;
GpioMuxRegs.GPFMUX.all = 0x0010;//0x0030
EDIS;
/* loopback 8 bit data */
SciaRegs.SCICCR.all = 0x07; // 1 bit stop, disable parity, idle mode, 8 bits data
SciaRegs.SCICTL1.all = 0x02; // enable TX 0x03
SciaRegs.SCICTL2.all = 0x81; //0x03
////////////////////9600///19200/////
SciaRegs.SCIHBAUD = 0x00;//0x01;//0x00;
SciaRegs.SCILBAUD = 0xF3;//0x44;//0xa2;
//0xf3=1111 0011=243
SciaRegs.SCICTL1.all = 0x22;//0x23
PieCtrl.PIEIER9.bit.INTx1 = 1;
PieCtrl.PIEIER9.bit.INTx2 = 1;
//tbd...
// Initialize SCI-B:
//tbd...
}
本意是让SCI一直重复输出0、1、2,可是现在一直输出0,而且把i循环改成1、2,变成1、2、1、2的循环,还是一直输出0,不知道为什么、、求高手指导,谢谢了
|
|