请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TMS320F28027 工具/软件: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);
}