typhoon5168 发表于 2019-5-10 08:55:09

STM32 SPI僅做傳送如何做成多組串接還可以利用DMA發動

請教各位先進, 因為需要做成一對多的SPI控制, 例如一對二
STM32當成Master僅做data transmit, NSS 需要兩個GPIO接腳,
傳輸時利用DMA來發動, GPIO的軟體控制應該怎麼做呢?

感謝分享.

select326 发表于 2019-5-10 09:32:20

传输前,先使能NSS,在中断中回调,然后失能。

songshiqun2010 发表于 2019-5-10 09:20:01

在DMA的传输完成中断中操作NSS即可。

typhoon5168 发表于 2019-5-10 10:17:04

songshiqun2010 发表于 2019-5-10 09:20
在DMA的传输完成中断中操作NSS即可。

感謝, 所以我應該在中斷裡加 " " 這一段來 enable NSS ?
然後在 HAL_SPI_TxCpltCallback() 裡面去 disable NSS ?
謝謝解答

void DMA1_Stream0_IRQHandler(void)
{
/* USER CODE BEGIN DMA1_Stream0_IRQn 0 */

" check data for nss1 or nss2 "
" enable nss1 or nss2"

/* USER CODE END DMA1_Stream0_IRQn 0 */
HAL_DMA_IRQHandler(&hdma_spi2_tx);
/* USER CODE BEGIN DMA1_Stream0_IRQn 1 */

/* USER CODE END DMA1_Stream0_IRQn 1 */
}
页: [1]
查看完整版本: STM32 SPI僅做傳送如何做成多組串接還可以利用DMA發動