本帖最后由 raoxianbin 于 2013-10-19 14:07 编辑
pinda_ 发表于 2013-10-19 12:21
不太看的懂你的描述。
我想你的意思应该是RXRDY与SCIRXBUF之间的关系怎么样……
en 很感谢你一直为我解答
下面是我的一段查询模式的代码
麻烦您帮我看看有什么不对的地方吗?
我没实现相应的功能
谢谢!
#include "DSP28_Device.h"
#include "DSP28_Globalprototypes.h"
unsigned int N=8;
float adc[16];//用于存储ADC的转换结果
float adcl0;
unsigned int Sci_varRx[100];
unsigned int i;
unsigned int Send_Flag;
unsigned int j;
int SciaRx_Ready(void);
int SciaTx_Ready(void);
void delay (void);
void main(void)
{
InitSysCtrl();
DINT;
IER=0x0000;
IFR=0x0000;
InitPieCtrl();
InitPieVectTable(); //初始化PIE模块中的CPU定时器0的中断
InitSci();
InitGpio();
for(j=0;j<100;j++)
{
Sci_varRx[j]=0;
}
j=0;
Send_Flag=0;
while(1)
{
if((SciaTx_Ready()==1)&&(Send_Flag==1))
{
while(j
{
if(SciaRegs.SCICTL2.bit.TXRDY==1)
{
SciaRegs.SCITXBUF=Sci_varRx[j];
j++;
}
}
Send_Flag=0;
j=0;
}
if(SciaRx_Ready()==1)
{
Sci_varRx[j]=SciaRegs.SCIRXBUF.all;
j++;
if(j==N)
{
j=0;
Send_Flag=1;
}
}
}
}
void delay (void)
{
short i;
for(i=0;i<10000;i++)
{}
}
int SciaTx_Ready(void)
{
unsigned int i;
if(SciaRegs.SCICTL2.bit.TXRDY==1)
{
i=1;
}
else
{
i=0;
}
return(i);
}
int SciaRx_Ready(void)
{
unsigned int i;
if(SciaRegs.SCIRXST.bit.RXRDY==1)
{
i=1;
}
else
{
i=0;
}
return(i);
}