选PA2,PA3,开启扫描模式,连续转换,关闭间断
通道选择,不配置则只会转换一个通道。使用软件触发
若是不用DMA中断,在NVIC中关闭中断,再在adc中的NVIC里去掉DMA中断
选择一个字节
必须使用uint32_t
/* USER CODE BEGIN 1 */
uint32_t AdcBuf[2]={0};//DMA 选用一个字节,则必须使用uint32_t
uint8_t i;
/* USER CODE END 1 */
在main函数中加入adc校准与开启DMA
需注意,低版本的cubemx中是先初始化ADC,再初始化DMA,要改成先DMA再ADC
/* USER CODE BEGIN 2 */
HAL_ADCEx_Calibration_Start(&hadc1);
HAL_ADC_Start_DMA(&hadc1, (uint32_t *)AdcBuf, 2);
/* USER CODE END 2 */
在while中使用串口将adc电压打印出来
while (1)
{
for(i=2;i<4;i++)
{
printf("PA%d: %.4fV\r\n",i,AdcBuf[i-2]*3.3/4096);
}
HAL_Delay(1000);
}