没有使用中断,采用轮询获取的ADC1通道1的值
CubeMX中 ADC设置如下:
在用STM32Cube MX时,将 Continuous Conversion Mode(连续转换模式) 设置成 ENABLE 后,ADC只能读出固定值
Main函数如下:
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_USART1_UART_Init();
MX_ADC1_Init();
HAL_ADC_Start(&hadc1);
while (1)
{
HAL_ADC_Start(&hadc1);
if(HAL_ADC_PollForConversion(&hadc1,0xff) == HAL_OK)
{
Adc_val = HAL_ADC_GetValue(&hadc1);
printf("这是一个串口%d\r\n",Adc_val);
}
HAL_GPIO_TogglePin(LED_GPIO_Port,LED_Pin);
HAL_Delay(500);
}
}
但将 Continuous Conversion Mode(连续转换模式) 设置成 DISABLE 后,ADC能正确读出
单片机型号为STM32L476RE
Continuous Conversion Mode(连续转换模式) ENABLE
设置为ENABLE,即连续转换。如果设置为DISABLE,则是单次转换。两者的区别在于连续转换直到所有的数据转换完成后才停止转换,而单次转换则只转换一次数据就停止,要再次触发转换才可以进行转换