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

请问ADC interrupt的出发条件是什么?

[复制链接]
左眼看不见 提问时间:2017-9-14 11:54 /
最近正在看STM32 固件库的user manual,看到里面关于ADC部分的例程,感觉还是有些糊涂。
以下时摘抄的代码:
1.Regular mode
/*##-3- Start the conversion process ######/
if(HAL_ADC_Start(&AdcHandle) != HAL_OK)
{ Error_Handler(); }
/*##-4- Wait for the end of conversion ######/
HAL_ADC_PollForConversion(&AdcHandle, 10);
if(HAL_ADC_GetState(&AdcHandle) == HAL_ADC_STATE_EOC_REG)
{
/*##-5- Get the converted value of channel ##*/
uhADCxConvertedValue = HAL_ADC_GetValue(&AdcHandle);
}
2.Interrupt mode
/*##-3- Start the conversion process ######/
if(HAL_ADC_StartIT(&AdcHandle) != HAL_OK)
{ Error_Handler(); }
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* AdcHandle)
{ /* Get the converted value of regular channel */
uhADCxConvertedValue = HAL_ADC_GetValue(AdcHandle);
}

两者的差别在于regular使用的是HAL_ADC_Start(&AdcHandle),interrupt使用的是HAL_ADC_StartIT(&AdcHandle) 。
这一点让我感到很困惑,使用regular时需要等待一定的采样时间,即HAL_ADC_PollForConversion(&AdcHandle, 10);,然后看HAL_ADC_GetState(&AdcHandle)的状态;
那interrupt进入中断的条件又是什么?因为它也需要软件运行HAL_ADC_StartIT(&AdcHandle)来开启,那中断意义何在?


收藏 评论2 发布时间:2017-9-14 11:54

举报

2个回答
MrJiu 回答时间:2017-9-14 14:44:47
看一下手册里面的中断事件就知道了。。。当然了最基本的一个是,采集完成后的中断肯定是有的。。。。
五哥1 回答时间:2017-9-17 21:28:35
触发条件当然要看手册

所属标签

相似问题

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