STM32103VB 问题
STM32VB的ADC中断入口函数就只有一个ADC_IRQHandler,想问一下,怎么区分到底是哪个ADC发生的中断在void ADCx_IRQHandler(void)函数中增加两条
HAL_ADC_IRQHandler(&AdcHandle);
HAL_ADC_IRQHandler(&AdcHandle1);
在有中断到来的时候,两条函数都执行,进去查看是哪个中断来的,就去处理哪个中断。
AdcHandle,AdcHandle1自己定义,对应上相应的ADC号
看一下HAL_ADC_IRQHandler()的原型,分为三个if,说明总共有三种中断源
每个if下都会有一条,“HAL_ADC_ConvXXXXXCallback()”的函数,这条默认是个弱函数,编译的时候可以使用用户自定义的函数来代替。
在用户程序中写的HAL_ADC_ConvCpltCallback(),具体要做什么工作,自己定。
楼主这个要根据配置进行判断,比如单通道,那么产生中断后就是最后一次配置的ADCx,如果时多通道,顺序就是配置的AD采集通道,ad......adn 学习了 楼上说的很清楚了
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)
{
if(hadc->Instance == ADC1)
{
}
} toofree 发表于 2019-9-27 19:37
在void ADCx_IRQHandler(void)函数中增加两条
HAL_ADC_IRQHandler(&AdcHandle);
HAL_ADC_IRQHandler(&AdcHa ...
我用的说标准库{:2_27:} 斯文人 发表于 2019-9-30 13:26
我用的说标准库
标准库更好办,放屁不用脱几条裤子,看看样例程序就明白了
页:
[1]