谢谢回复!
我用的是C6701,虽说比较老,但不得不用,我看了手册,MCBSP的用法和其它C6000系列的DSP是一个手册。这里DSP是Master,要控制的从设备是W5500。
void IINCHIP_SpiSendData(uint8 byte)
{
while(MCBSP_xrdy(hMcbsp0) == 0); //Wait until XRDY=1, then data is tramsmitted
MCBSP_write(hMcbsp0,byte);
}
用上面的函数只发送数据的话,发送的数据和对应的时序是下面这样的,这个结果是正确的(一帧数据包括3个字节)
而在函数中加上接收部分的内容后,时序变成了下面这样,首字节发送了两次,而且多了一帧数据
下面是我的初始化程序,是用官方的一个例程改的,你看看这块有没有什么问题
void MCBSP_INIT(void)
{
/* Declaration of local variables */
Uint32 wait = 0;
/* initialize the CSL library */
CSL_init();
MCBSP_reset(hMcbsp0);
/* initialize the the McBSP1 */