如何将 ADC 值发送到串行端口

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

我希望能够将我的 ADC 值发送到 Nodemcu 以将它们放入 Web UI,但我什至无法将任何 UART 值发送到串行端口并且我没有发现问题

我将我的变量和库设置为;

#include "stdio.h"
#include "string.h"
uint8_t convEnd = 0;
uint32_t adcBuff[3];        
uint32_t adcData[3];

在此之后,我使用 DMA 方法读取我的 ADC 值,我设置一个标志在转换完成时变为 1。

void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef *hadc){
    
    if (hadc->Instance == ADC1){
    adcData[0] = adcBuff[0];
    adcData[1] = adcBuff[1];
    adcData[2] = adcBuff[2];
     convEnd = 1; 
    }     
}

接下来,我开始 dma 并将这段代码放入我的 while(1) 循环中,

  while (1)
  {
      if(convEnd == 1)                  //check is conv completed
      {
          char txt[30];
          sprintf(txt, "ADC Val: %d %d\n\r", adcData[0], adcData[1]);           
          HAL_UART_Transmit(&huart2, (uint8_t *)txt, strlen(txt), 100);     
          HAL_Delay(500);                               
          convEnd = 0;
      }

  }

因此,我可以正确读取 ADC,但我无法通过 UART 将这些值发送到任何串行端口

感谢阅读

stm32 uart dma adc
© www.soinside.com 2019 - 2024. All rights reserved.