|
怎么一直卡在红色字体部分呢?
DMA传输完中断除了配置NVIC,还需要配置SPI和DMA的中断寄存器吧?代码中好像没找着相关的。
void bsp_spiTransfer(void)
{
if (g_spiLen > SPI_BUFFER_SIZE)
{
return;
}
/* DMA·?ê?′?ê? */
#ifdef USE_SPI_DMA
wTransferState = TRANSFER_WAIT;
if(HAL_SPI_TransmitReceive_DMA(&hspi, (uint8_t*)g_spiTxBuf, (uint8_t *)g_spiRxBuf, g_spiLen) != HAL_OK)
{
//Error_Handler(__FILE__, __LINE__);
}
while (wTransferState == TRANSFER_WAIT)
{
;
}
#endif
/* ?D??·?ê?′?ê? */
#ifdef USE_SPI_INT
wTransferState = TRANSFER_WAIT;
if(HAL_SPI_TransmitReceive_IT(&hspi, (uint8_t*)g_spiTxBuf, (uint8_t *)g_spiRxBuf, g_spiLen) != HAL_OK)
{
//Error_Handler(__FILE__, __LINE__);
}
while (wTransferState == TRANSFER_WAIT)
{
;
}
#endif
/* 2é?ˉ·?ê?′?ê? */
#ifdef USE_SPI_POLL
if(HAL_SPI_TransmitReceive(&hspi, (uint8_t*)g_spiTxBuf, (uint8_t *)g_spiRxBuf, g_spiLen, 1000000) != HAL_OK)
{
//Error_Handler(__FILE__, __LINE__);
}
#endif
}
|
|