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.

mibspi问题

example_mibspi_trigger_tick 例程中mibspiGroupNotification什么时候被调用

  • /* USER CODE BEGIN (0) */
    #include "GIO.h"
    #include "mibspi.h"
    #include "pinmux.h"
    /* USER CODE END */

    /* Include Files */

    #include "sys_common.h"
    #include "system.h"

    /* USER CODE BEGIN (1) */
    #define TG_LENGTH 8
    uint16 Tx_Data_SPI_1[8];
    uint16 Tx_Data_SPI_2[8];
    uint16 Tx_Data_SPI_3[8];
    uint16 Rx_Data_SPI_1[8];
    uint16 Rx_Data_SPI_2[8];
    uint16 Rx_Data_SPI_3[8];
    /* USER CODE END */

    /** @fn void main(void)
    * [url=home.php?mod=space&uid=159083]@brief[/url] Application main function
    * @note This function is empty by default.
    *
    * This function is called after startup.
    * The user can use this function to implement the application.
    */

    /* USER CODE BEGIN (2) */
    /* USER CODE END */

    void main(void)
    {
    /* USER CODE BEGIN (3) */
    uint8 i;
    muxInit();
    gioInit();
    mibspiInit();
    mibspiEnableGroupNotification(mibspiREG1,0,0);
    // mibspiEnableGroupNotification(mibspiREG1,0,1);
    // mibspiEnableGroupNotification(mibspiREG1,0,2);
    _enable_IRQ();
    Tx_Data_SPI_1[0] = 0x0011;
    Tx_Data_SPI_2[0] = 0x0021;
    Tx_Data_SPI_3[0] = 0x0031;
    for(i=1;i<TG_LENGTH;i++)
    {
    Tx_Data_SPI_1[i] = Tx_Data_SPI_1[i-1]+1;
    Tx_Data_SPI_2[i] = Tx_Data_SPI_2[i-1]+1;
    Tx_Data_SPI_3[i] = Tx_Data_SPI_3[i-1]+1;

    }
    mibspiSetData(mibspiREG1,0,Tx_Data_SPI_1);
    // mibspiSetData(mibspiREG1,1,Tx_Data_SPI_2);
    // mibspiSetData(mibspiREG1,2,Tx_Data_SPI_3);
    mibspiTransfer(mibspiREG1,0 );
    // mibspiTransfer(mibspiREG1,1 );
    // mibspiTransfer(mibspiREG1,2 );
    while(1)
    {
    // while(mibspiIsTransferComplete(mibspiREG1, 0)==1)
    // {
    // mibspiGetData(mibspiREG1, 0, Rx_Data_SPI_1);
    // }
    }
    /* USER CODE END */
    }

    /* USER CODE BEGIN (4) */
    void mibspiGroupNotification(mibspiBASE_t *mibspi, uint32 group)
    {
    /* enter user code between the USER CODE BEGIN and USER CODE END. */
    switch(group)
    {
    case 0:
    mibspiGetData(mibspiREG1, 0, Rx_Data_SPI_1);
    break;
    case 1:
    mibspiGetData(mibspiREG1, 1, Rx_Data_SPI_2);
    break;
    case 2:
    mibspiGetData(mibspiREG1, 2, Rx_Data_SPI_3);
    break;
    default:
    break;

    }
    }

  • 我觉得是需要设置mibspi的中断(vim部分),然后在中断中使用notification.