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

请问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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版