This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

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