ADC 多通道中断采样

例程路径:ls_sdk\examples\peripheral\adcv2\adc_multi_channel

一、功能描述

  • 应用上面在使用中断触发ADC采样功能时,当ADC转换完成后,会根据应用配置上相应转换完成中断。

  • 使用循环通道方式时,应用上面触发一次后,当转换完循环组最后一个通道时,会自动重新开始下一轮的转换,直到应用上面去停止采样为止。

二、软件配置

2.1 基本配置

  • 基本ADC采样配置和通道配置与轮询采样中介绍的一致,不再赘述。

2.2 事件触发和中断回调

  • 当使用规则组时

    // 开始中断采集
    HAL_StatusTypeDef HAL_ADC_Start_IT(ADC_HandleTypeDef *hadc);
    
    // 采集完成后的中断回调,需要在回调函数里面去获取ADC的值
    void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc);
    
  • 当使用注入组时

    // 开始中断采集
    HAL_StatusTypeDef HAL_ADCEx_InjectedStart_IT(ADC_HandleTypeDef* hadc);
    
    // 采集完成后的中断回调,需要在回调函数里面去获取ADC的值
    void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc);
    
  • 当使用循环组时

    HAL_StatusTypeDef HAL_ADCx_LoopStart_IT(ADC_HandleTypeDef *hadc);
    

三、下载验证

将开发板的PA01、PA02、PA03输入电压,运行程序,打开RTT LOG查看打印信息,三个通道的AD值,依次用规则通道、注入通道、轮询通道的方式捕获到并且打印出来。