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.
工具/软件:Code Composer Studio
你好
我尝试了在没有 FIFO 和中断的情况下进行简单的 SPI 转换。
在发送字符触发 SPIRXINTA 中断后。
我不明白为什么。 我在发送字符之后需要 SPITXINTA。
这是我的初始化文件:
EALLOW; PieVectTable.SPIRXINTA =& SpiRxInt; PieVectTable.SPITXINTA =& SpiTxInt; EDIS; PieCtrlRegs.PIEIER6.bit.INTx2 = 1;//在 PIE 中启用 SPI TX 中断:组6中断2 ;PieRx6中断 | PIE 中断1;SPIERR/ INT.Rx 中断1 //启用全局中断 INTM ERTM;//启用全局实时中断 DBGM void SPI_init () { CLK_enableSpiaClock (myClk); SPI_setCharLength (mySpi、SPI_CharLength _8_Bits); SPI_setClkPhase (mySpi、SPI_ClkPhase_Normal); SPI_setClkPolarity (mySpi、SPI_ClkPolarity_OutputRisingEdge_InputFallingEdge); SPI_setMode (mySpi、SPI_Mode_Master); SPI_setTxDelay (mySpi、0); SPI_enableTx (mySpi); SPI_setBaudRate (mySpi、SPI_bAUDRAATE_500_kbaud); SPI_ENABLE (mySpi); SPI_setPriority (mySpi、SPI_Priority_freeRun); SPI_enableInt (mySpi); SPI_enableLoopBack (mySpi); SPI_RESET (mySpi); return; } 中断 void SpiRxInt (void) { GPIO_setHigh (myGpio、g_GPIO_SPI_cs); PieCtrlRegs.PIEACK.all = PIEACK_group6;//清除中断标志和 PIE ACK } 中断 void SpiTxInt (void) { GPIO_setHigh (myGpio、g_group6 ;pio_pipe_flag 和 PIEACK = PIEACK }
MAIN ()
{
GPIO_setLow (myGpio、g_GPIO_SPI_cs);
SPI_WRITE (mySpi、0x55<<8);
}
Rasto89
当不使用 FIFO 时、SPI 只使用 SPIINT/SPIRXINT 线路来实现中断。 SPITXINT 线路未激活。
请参阅 SPI 用户指南(http://www.ti.com/lit/SPRUG71)中的第1.6.1节 SPI 中断。 图7和表4清楚地描述了这种行为。
此致、
标记