#stm32cubeide
#stm32cubeide
Вопрос:
В этом коде ниже я считываю значение АЦП с помощью микроконтроллера и сохраняю его в «adcVal0» . Затем я отправил это значение через USB для печати на экране, оно печатает некоторые цифры/символы, но это должны быть только некоторые цифры. любая помощь будет признательна.
Также я определил adcVal0 как uint16_t
вывод с USB выглядит так на изображении :
/* Includes ------------------------------------------------------------------*/ #include "main.h" #include "usb_device.h" /* Private variables ---------------------------------------------------------*/ ADC_HandleTypeDef hadc; /* Private function prototypes -----------------------------------------------*/ void SystemClock_Config(void); static void MX_GPIO_Init(void); static void MX_ADC_Init(void); /* USER CODE BEGIN PFP */ /* USER CODE END PFP */ /* Private user code ---------------------------------------------------------*/ /* USER CODE BEGIN 0 */ uint8_t *data = "Hello World from USB CDCn"; uint16_t adcVal0; /* USER CODE END 0 */ /** * @brief The application entry point. * @retval int */ int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MCU Configuration--------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); /* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_ADC_Init(); MX_USB_DEVICE_Init(); /* USER CODE BEGIN 2 */ /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { HAL_ADC_Start(amp;hadc); if(HAL_ADC_PollForConversion(amp;hadc, 5)== HAL_OK) { adcVal0 = HAL_ADC_GetValue(amp;hadc); } /*send through USB*/ CDC_Transmit_FS(adcVal0, 16); HAL_Delay (1000); /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */ }