STM32通过DMA串口接受陀螺仪数据

STM32F407ZGT6为开发板,使用CH100陀螺仪,通过CubeIDE来进行编译。

在开始打开USRT3串口,并配置好时钟;
↑串口配置已完成

下一步直接在main函数的while循环中里使用 HAL_UART_Receive_DMA 函数可以吗?【main函数里我省略了一些东西】

int main(void)
{
  while (1)
  {
      HAL_UART_Receive_DMA(&huart3,CH100_buf,CH100_DATA_LEN);
  }

}

怎么把陀螺仪数据通过DMA串口传输到STM32再显示到IDE中呢?卡在接受数据这里了,没有语法报错

我预期的结果是不会结束,不断反复的读取ch100的数据,那怕没有反应,但工作台中显示烧录成功就结束了。

File download complete
Time elapsed during download operation: 00:00:00.475

为什么有while(1)程序还会结束..?

在开始定义了存储空间CH100_buf[82]以接受CH100陀螺仪传输的数据,但是无法确定DMA串口是否真的收到了来自陀螺仪的数据并储存到STM32中。
1.在CubeIDE中将接受DMA串口收据编译,烧录到STM32中,让STM32去接受数据
2.STM32接受数据成功,通过DMA直接将数据存储到xx位置【DMA作用就是省略某些协议好像】
3.对这些数据进行解析,并通过其他串口传输出去或是进行运算,开始传出数据去控制电机舵机。

你有初始化DMA相关的函数吗?
如何判断出程序结束了?可以在主循环中加延时和打印,看一下是否程序结束还是还在运行