【发布时间】:2017-01-13 08:28:10
【问题描述】:
我想将 ADC 值转换为浮点数。 这是我的代码:
uint32_t ADCValue;
char str[15];
ADCValue = HAL_ADC_GetValue(&hadc1);
ADCValue=ADCValue*3.3/4095;
sprintf(str, "%d", Voltage);
HAL_UART_Transmit(&huart2, (uint8_t*)(&str), 6, 100);
HAL_UART_Transmit(&huart2, (uint8_t*) "\n\r", 2, 100);
HAL_Delay(500);
我在 3.3V 时读取 4095 的值,但我正在将 3 传输到缓冲区。我想传输准确的电压值。
【问题讨论】:
-
ADCValue=ADCValue*3.3/4095-->ADCValue=(ADCValue*10)*33/40950 -
什么是
Voltage? -
@LPs - 为什么要额外乘以 10? 3.3 已更改为 33。
-
你想在UART上传输浮点值吗?
-
@Dummy 您发送 33 但您知道如何在从设备上“解码”它。
标签: c stm32 data-conversion adc