你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32103VB 问题

[复制链接]
ikxlf 提问时间:2019-9-27 17:47 /
STM32VB的ADC中断入口函数就只有一个ADC_IRQHandler,想问一下,怎么区分到底是哪个ADC发生的中断
收藏 评论6 发布时间:2019-9-27 17:47

举报

6个回答
七哥 回答时间:2019-9-27 19:37:58
在void ADCx_IRQHandler(void)函数中增加两条
HAL_ADC_IRQHandler(&AdcHandle);
HAL_ADC_IRQHandler(&AdcHandle1);
在有中断到来的时候,两条函数都执行,进去查看是哪个中断来的,就去处理哪个中断。
20190927192703.jpg

AdcHandle,AdcHandle1自己定义,对应上相应的ADC号
20190927193308.jpg

看一下HAL_ADC_IRQHandler()的原型,分为三个if,说明总共有三种中断源
20190927192723.jpg

每个if下都会有一条,“HAL_ADC_ConvXXXXXCallback()”的函数,这条默认是个弱函数,编译的时候可以使用用户自定义的函数来代替。
20190927192932.jpg

在用户程序中写的HAL_ADC_ConvCpltCallback(),具体要做什么工作,自己定。
20190927192951.jpg


废鱼 回答时间:2019-9-28 08:54:47
楼主这个要根据配置进行判断,比如单通道,那么产生中断后就是最后一次配置的ADCx,如果时多通道,顺序就是配置的AD采集通道,ad......adn
cy2005abc 回答时间:2019-9-28 08:58:28
学习了
zhao.zhao 回答时间:2019-9-28 11:02:50
楼上说的很清楚了
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)
{
    if(hadc->Instance == ADC1)
    {
        
    }   
}
ikxlf 回答时间:2019-9-30 13:26:45
toofree 发表于 2019-9-27 19:37
在void ADCx_IRQHandler(void)函数中增加两条
HAL_ADC_IRQHandler(&AdcHandle);
HAL_ADC_IRQHandler(&AdcHa ...

我用的说标准库
七哥 回答时间:2019-10-1 00:40:28

标准库更好办,放屁不用脱几条裤子,看看样例程序就明白了

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版