You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

STM32 LL SPI DMA收发完成中断未触发,求解决方法

STM32 LL驱动SPI DMA收发正常但传输完成中断无法触发

基于STM32低级别(LL)驱动实现了SPI DMA收发功能,目前收发正常,但DMA通道2的传输完成(TC)中断始终无法触发。

SPI初始化代码

// Note: called only once because the address of the peripheral does never change
// Configure RX
// LL_DMA_ConfigAddresses(DMA, DMA Channel, Source Addr, Dest Addr, Direction)
LL_DMA_ConfigAddresses(
    DMA1,
    LL_DMA_CHANNEL_2,
    LL_SPI_DMA_GetRegAddr(SPI1),
    (uint32_t)RXdata,
    LL_DMA_GetDataTransferDirection(DMA1, LL_DMA_CHANNEL_2));

// Configure Tx
LL_DMA_ConfigAddresses(
    DMA1,
    LL_DMA_CHANNEL_3,
    (uint32_t)TXdata,
    LL_SPI_DMA_GetRegAddr(SPI1),
    LL_DMA_GetDataTransferDirection(DMA1, LL_DMA_CHANNEL_3));

重复启动传输的代码

// set RX
LL_DMA_SetMemoryAddress(DMA1, LL_DMA_CHANNEL_2, (uint32_t)pRXdata);
LL_DMA_SetDataLength(DMA1, LL_DMA_CHANNEL_2, BufSz);
LL_SPI_EnableDMAReq_RX(SPI1);
LL_DMA_EnableChannel(DMA1, LL_DMA_CHANNEL_2);
LL_DMA_EnableIT_TC(DMA1, LL_DMA_CHANNEL_2);
LL_DMA_EnableIT_TE(DMA1, LL_DMA_CHANNEL_2);

// set TX
LL_DMA_SetMemoryAddress(DMA1, LL_DMA_CHANNEL_3, (uint32_t)pTXdata);
LL_DMA_SetDataLength(DMA1, LL_DMA_CHANNEL_3, BufSz);
LL_SPI_EnableDMAReq_TX(SPI1);
LL_DMA_EnableChannel(DMA1, LL_DMA_CHANNEL_3);

// Start SPI
LL_SPI_Enable(SPI1);

DMA初始化配置(自动生成)

void MX_DMA_Init(void) {

  /* DMA controller clock enable */
  __HAL_RCC_DMA1_CLK_ENABLE();

  /* DMA interrupt init */
  /* DMA1_Channel2_IRQn interrupt configuration */
  NVIC_SetPriority(DMA1_Channel2_IRQn, NVIC_EncodePriority(NVIC_GetPriorityGrouping(),4, 0));
  NVIC_EnableIRQ(DMA1_Channel2_IRQn);
  /* DMA1_Channel3_IRQn interrupt configuration */
  NVIC_SetPriority(DMA1_Channel3_IRQn, NVIC_EncodePriority(NVIC_GetPriorityGrouping(),5, 0));
  NVIC_EnableIRQ(DMA1_Channel3_IRQn);
}

补充配置信息

  • 已将传输完成(TC)和传输错误(TE)中断绑定到RX的DMA通道2(与HAL做法一致)
  • CubeMX中已启用DMA通道2和3的中断,中断向量表中存在对应函数
  • 系统全局中断正常:SysTick中断可触发,定时器中断可触发SPI传输
  • 在DMA1_Channel2_IRQHandler中添加了调试计数器,其值始终为0,说明中断从未执行

请问如何让DMA通道2的传输完成中断正常触发?


内容的提问来源于stack exchange,提问作者Chris_B

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 17:39:57