STM32 SPI 中断和 DMA 不工作,轮询是

问题描述 投票:0回答:1

我正在使用STM32H7A3 nucleo,设法让SPI轮询工作,附上下面的代码,当我尝试实现中断和DMA时,代码编译成功,没有错误,但SPI输出没有信号,SPI从设备是TI ADC。 .我已经设置了SPi全局中断和DMA循环

HAL_StatusTypeDef spi_write(reg, *pData)
{
  HAL_StatusTypeDef ret;
  uint8_t sendData[2] = {reg, *pData};
 
  HAL_GPIO_WritePin(...);  // CS pull low
  ret = HAL_SPI_Transmit_IT(&hspi1, sendData, 2, 20);
// ret = HAL_SPI_Transmit_DMA(&hspi1, sendData, 2, 20);
  if  (ret != HAL_OK)
  {
              HAL_GPIO_WritePin(..);  // CS high
  }

代码正在用于轮询....TI ADC 能够读取和发送数据,但不能是中断和 DMA 模式

c stm32 interrupt
1个回答
0
投票

这两个函数都不是阻塞的,只是设置转换并立即返回。

这意味着他们不会等到过渡完成。

然后在过渡结束之前拉起 CS。

您需要在中断回调中使用它/

© www.soinside.com 2019 - 2024. All rights reserved.