STM32VB的ADC中断入口函数就只有一个ADC_IRQHandler,想问一下,怎么区分到底是哪个ADC发生的中断
HAL_ADC_IRQHandler(&AdcHandle);
HAL_ADC_IRQHandler(&AdcHandle1);
在有中断到来的时候,两条函数都执行,进去查看是哪个中断来的,就去处理哪个中断。
AdcHandle,AdcHandle1自己定义,对应上相应的ADC号
看一下HAL_ADC_IRQHandler()的原型,分为三个if,说明总共有三种中断源
每个if下都会有一条,“HAL_ADC_ConvXXXXXCallback()”的函数,这条默认是个弱函数,编译的时候可以使用用户自定义的函数来代替。
在用户程序中写的HAL_ADC_ConvCpltCallback(),具体要做什么工作,自己定。
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)
{
if(hadc->Instance == ADC1)
{
}
}
我用的说标准库
标准库更好办,放屁不用脱几条裤子,看看样例程序就明白了