void SPIx_IRQHANDLER(void)
{
#ifdef SPI_MASTER
if(SPI_I2S_GetFlagStatus(SPIx,SPI_I2S_IT_TXE) == SET)
{
if(CmdStatus == 0x00)
{
SPI_I2S_SendData(SPIx,CmdTransmitted);
CmdStatus = 0x01;
}
else
{
if(Tx_Idx < GetVar_NbrOfData())
{
SPI_I2S_SendData(SPIx,CmdTransmitted);
CmdStatus = 0x01;
}
else
{
if(Tx_Idx < GetVar_NbrOfData()) { SPI_I2S_SendData(SPIx,TxBuffer[Tx_Idx++]); }
else { SPI_I2S_ITConfig(SPIx,SPI_I2S_IT_TXE,DISABLE); }
}
}
}
#endif
}
程序全速运行时,进入if(SPI_I2S_GetFlagStatus(SPIx,SPI_I2S_IT_TXE) == SET)就跳不出来了,请问怎么回事?百度有一种说加上拉电阻的方案,不知道可不可靠。SPI只连了MOSI线和时钟线,地线。 |