程序中ADC工作正常,但无法在UART上发送浮点值。只有整数发送正常。但是当我使用sprintf函数发送浮点值时,只能发送零。程序如下
uint16_t val; float voltage=0; while { HAL_Delay(1000); /* USER CODE END WHILE */ HAL_ADC_Start(&hadc); HAL_ADC_PollForConversion(&hadc, 10); val = HAL_ADC_GetValue(&hadc);
voltage= ((val/4096)*3.3); sprintf(p,"%1.3f ",voltage); /* For floting value displaying*/ HAL_UART_Transmit(&huart2, p, sizeof(p), 10); HAL_ADC_Stop(&hadc); }
while { HAL_Delay(1000); /* USER CODE END WHILE */ HAL_ADC_Start(&hadc); HAL_ADC_PollForConversion(&hadc, 10); val = HAL_ADC_GetValue(&hadc); sprintf(p, "%d ", val); HAL_UART_Transmit(&huart2, p, sizeof(p), 10); HAL_ADC_Stop(&hadc); }
|