微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI WIFI设计交流 > CC3200 SPI 如何实现slave向master发送数据?

CC3200 SPI 如何实现slave向master发送数据?

时间:10-02 整理:3721RD 点击:

官方的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这边如何发出数据?求助

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top