我正在尝试使用
STM32F103C8 创建 ADC。我使用的软件有:
一种。STM32CubeMX
b. Keil Vision--V5
C。监视串行输出的 Hercules
STM 的时钟设置为 72 Mhz,ADC 为 12 Mhz
代码 :-
而 (1)
{
/* 用户代码结束 */
HAL_ADC_Start(&hadc1);
HAL_ADC_PollForConversion(&hadc1,300);
raw = HAL_ADC_GetValue(&hadc1);
float vin = (double)raw*(3.3/4096);
sprintf(msg1,"Vol = %.2f, HEX Value = %.4x
",vin, raw);
HAL_UART_Transmit(&huart1,(uint8_t*)msg1,sizeof(msg1),300);
HAL_延迟(1000);
/* 用户代码开始 3 */
}
当 ADC 的输入电压为零时,我得到大约 1.69 伏特的恒定直流输出(附上屏幕截图)。在提供 0 - 3.3 伏之间的任何电压值后,输出在 0 到 3.3 伏之间有争议地变化。
我检查了输入参考电压,它是 3.3 伏。你能建议我如何解决这个问题吗?我打印了函数 HAL_ADC_GetValue(&hadc1) 输出的十六进制值。