请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TMS320F28069F 主题中讨论的其他器件:MOTORWARE
尊敬的 TI 成员:
我正在使用带有 motorware 的中断开发 SPI 从站
其他 MCU 是 SPI 主器件、F28069F 是 SPI 从器件。
我可以通过 RxISR 从 MCU 接收几个数据、我想使用 TxISR 向 MCU 发送数据。
但是、我的代码中从未调用过 TxISR。
请看一下我的安装代码吗? 它中是否有任何错误设置?
void setupSpiA (SPI_Handle spiHandle) { //初始化 SPI FIFO 寄存器 SPI_enableChannels (spiHandle); SPI_enableTxFifoEnh (spiHandle); SPI_enableTxFifo (clearHandle); SPI_DisableTxFifoInt (spiHandle) ;SPI_TxFifeTxFifoInt (spiHandle); //添加以启用 Tx int SPI_setTxFifoIntLevel (spiHandle、SPI_FifoLevel 1_Word); SPI_enableTxFifoInt (spiHandle); SPI_enableRxFifo (spiHandle); SPI_clearRxFifoInt (spiHandle); SPI_DisableRxFifoInt (spiHandle); SPI_setRxFifoIntLevel (spiHandle、SPI_FifoLevel_1_Word); SPI_setTxDelay (spiHandle、0); //初始化 SPI SPI_RESET (spiHandle); SPI_DisableLoopBack (spiHandle); SPI_setClkPolarity (spiHandle、SPI_ClkPolarity_OutputRisingEdge_InputFallingEdge); SPI_setCharLength (spiHandle、SPI_CharLength _16_Bits); SPI_setClkPhase (spiHandle、SPI_ClkPhase_Delayed); SPI_setMode (spiHandle、SPI_Mode_Slave); SPI_DisableOverRunInt (spiHandle); SPI_enableTx (spiHandle); SPI_DisableInt (spiHandle); SPI_ENABLE (spiHandle); SPI_setPriority (spiHandle、SPI_Priority_freRun); SPI_setSteInv (spiHandle、 SPI_SteInv_ActiveLow); SPI_setTriWire (spiHandle、SPI_TriWire_normalFourWire); }
interrupt void spiATxISR (void) { HAL_Obj * obj =(HAL_Obj *) halHandle; //while (SPI_getTxFifoStatus (halHandle->spiAHandle)!= SPI_spiOStatus_empty); TX_FLAG = SPI_getTxFifoStatus (halHandle->AifHandle<SpiHandle->AxFidle- );TXPixIdF (halHandle<SpiDxFifoHandle<TxF); spiTxIdx++; if (spiTxIdx == txLen) { spiTxIdx=0; txLen=0; } TX_cn++; SPI_clearTxFifoInt (halHandle->spiAHandle); PI_clearInt (obj->压 电极、PI_GroupNumber); }
供参考、我已使用要发送的数据填充 spiTxBuf[]、长度设置为 txLen
我已经测试过,TX_cnt 永远不会增加,这意味着在运行时永远不会调用 spiTxISR()
请查看我的代码。
提前感谢