想实现无线SPI输出,结合sdk的spi_demo例程进行修改,引脚配置什么的都修改好并通过编译,结果在线调试卡在MAP_SPITransfer,请问大家能否帮忙找一下原因呢?
int TcpServerMultiClient(unsigned int usPort)
{
int serverID;
SlSockAddrIn_t sAddr;
SlSockAddrIn_t sLocalAddr;
int iAddrSize;
int iStatus;
int i, Ret,lLoopCount;
int socketID[5] = {-1, -1, -1, -1, -1};
//Start TCP Server;
sLocalAddr.sin_family = SL_AF_INET;
sLocalAddr.sin_port = sl_Htons((unsigned short)usPort);
sLocalAddr.sin_addr.s_addr = 0;
serverID = sl_Socket(SL_AF_INET,SL_SOCK_STREAM, 0);
if(serverID < 0)
{
ASSERT_ON_ERROR(SOCKET_CREATE_ERROR);
}
iAddrSize = sizeof(SlSockAddrIn_t);
iStatus = sl_Listen(serverID, 0);
if( iStatus < 0 )
{
ASSERT_ON_ERROR(sl_Close(serverID));
ASSERT_ON_ERROR(LISTEN_ERROR);
}
UART_PRINT("\n\rListen OK\n\r");
//
// Reset SPI
//
MAP_SPIReset(GSPI_BASE);
//
// Configure SPI interface
//
MAP_SPIConfigSetExpClk(GSPI_BASE,MAP_PRCMPeripheralClockGet(PRCM_GSPI),
SPI_IF_BIT_RATE,SPI_MODE_SLAVE,SPI_SUB_MODE_0,
(SPI_HW_CTRL_CS |
SPI_4PIN_MODE |
SPI_TURBO_OFF |
SPI_CS_ACTIVEHIGH |
SPI_WL_8));
//
// Enable SPI for communication
//
MAP_SPIEnable(GSPI_BASE);
for(i = 0; i < 5; i ++)
{
if(socketID[i] < 0)
{
socketID[i] = sl_Accept(serverID, ( struct SlSockAddr_t *)&sAddr,
(SlSocklen_t*)&iAddrSize);
}
if(socketID[i] > 0)
{
int LOOP,m;
for(LOOP = 0;LOOP < 1000 ; LOOP++)
{
Ret = sl_Recv(socketID[i], g_cBsdBuf, 1000, 0);
for ( m = 0 ;m < Ret ; m++ )
{
MAP_SPITransfer(GSPI_BASE,&g_cBsdBuf[m],0,10,
SPI_CS_ENABLE|SPI_CS_DISABLE);
UART_PRINT("%s",&g_cBsdBuf[m]);
}
memset(g_cBsdBuf,0,sizeof(g_cBsdBuf));
}
}
}
for(i = 0; i < 5; i ++)
{
sl_Close(socketID[i]);
socketID[i]= -1;
}
}
