CC3200 SPI 如何实现slave向master发送数据?
官方的spi_demo实现了master向slave发送数据,如何实现由slave向master发送任意数据呢?(不是把master向slave发送的数据读回来)。
可以参考http://www.deyisupport.com/question_answer/wireless_connectivity/wifi/f/105/t/96137.aspx?pi2132219853=1 里的方法
注意里面说的读取接收buffer里的数据,不是master发出去的,是收到的slave数据
您好,链接中哪个回复是对的?这个吗:“官方的例程里面应该是master会接收到数据在g_ucRxBuff里面,你有看到SLAVE传过来的数据吗?”。
若g_ucRxBuff中是收到的slave数据,那我可以通过串口向slave输入想要的数据,在g_ucRxBuff中得到吗?
Viki Shi
可以参考http://www.deyisupport.com/question_answer/wireless_connectivity/wifi/f/105/t/96137.aspx?pi2132219853=1 里的方法
注意里面说的读取接收buffer里的数据,不是master发出去的,是收到的slave数据
Demo中SlaveIntHandler()增加如下语句(后面带//////部分),作用是串口输入数据,通过slave发出去。
static void SlaveIntHandler()
{
unsigned long ulRecvData;
unsigned long ulStatus;
unsigned long ab;/////////////
ulStatus = MAP_SPIIntStatus(GSPI_BASE,true);
MAP_SPIIntClear(GSPI_BASE,SPI_INT_RX_FULL|SPI_INT_TX_EMPTY);
if(ulStatus & SPI_INT_TX_EMPTY)
{
MAP_SPIDataPut(GSPI_BASE,g_ucTxBuff[ucTxBuffNdx%TR_BUFF_SIZE]);
ucTxBuffNdx++;
}
if(ulStatus & SPI_INT_RX_FULL)
{
MAP_SPIDataGetNonBlocking(GSPI_BASE,&ulRecvData);
g_ucTxBuff[ucRxBuffNdx%TR_BUFF_SIZE] = ulRecvData;
Report("%c",ulRecvData);
ab = MAP_UARTCharGet(UARTA0_BASE);///////////
MAP_SPIDataPut(GSPI_BASE,ab);/////////////
ucRxBuffNdx++;
}
}
MasterMain()中的while循环部分增加如下语句(后面带//////部分),作用为将master收到的数据显示出来
while(ulUserData != '\r')
{
//
// Read a character from UART terminal
//
ulUserData = MAP_UARTCharGet(UARTA0_BASE);
//
// Echo it back
//
MAP_UARTCharPut(UARTA0_BASE,ulUserData);
//
// Push the character over SPI
//
MAP_SPIDataPut(GSPI_BASE,ulUserData);
//
// Clean up the receive register into a dummy
// variable
//
MAP_SPIDataGet(GSPI_BASE,&ulDummy);
MAP_UARTCharPut(UARTA0_BASE,ulDummy);////////////////////////////////////
}
有没有slave向master发数据的例程可以提供呢?
master这边如何读出数据?slave这边如何发出数据?求助