目前在学习DSP的串口
通信,即利用DSP上的SCI功能进行异步串行通信。对于
ti官方给的例程,已经进行了验证,发现DSP的串口是没有问题的。现在手里边有两块f28335的DSP
芯片,想在此基础上进行两个DSP的串口通信。 在官方例程的基础上对程序做了一些修改,现在已经完成的工作如下:
1)DSP芯片1,烧入一个发送数据的程序,从0开始发送,一直往上发。发送程序如下:
int i=0;
for(;;)
{
scia_xmit(i);
i++;
//while(SciaRegs.SCIFFRX.bit.RXFFST !=1) { }
//LED1 =0x000f & SciaRegs.SCIRXBUF.all;
}
烧写完成后,DSP上电将数据发送给电脑,利用串口调试软件验证,发现能够正常发送。
2)DSP芯片2,烧入一个接收和发送数据的程序,将接收到的数据发送回去。主要的程序如下:
for(;;)
{
while(SciaRegs.SCIFFRX.bit.RXFFST !=1) { } // wait for XRDY =1 for empty state
ReceivedChar = SciaRegs.SCIRXBUF.all;
scia_xmit(ReceivedChar);
}
void scia_xmit(int a)
{
while (SciaRegs.SCIFFTX.bit.TXFFST != 0) {}
SciaRegs.SCITXBUF=a;
}
烧写完后,DSP上电,利用串口和电脑进行通信。通过串口调试软件发送数据给DSP,发现接收到的数据和发送的数据相同,所以功能正确。
3)在完成上两项的工作后,接下来将两者联系起来,验证DSP和DSP的通信。用引线将DSP芯片1的TXD引脚和DSP芯片2的RXD相连,将DSP芯片2的TXD引脚接到RS-232的发送端,将数据发送给电脑。将以上系统搭建好后,上电后进行验证,发现电脑串口调试软件并没有收到数据,说明两个DSP没有正常通信。
各位有没有知道原因的,能不能帮忙给解答一下。
一周热门 更多>