本帖最后由 香水城 于 2021-12-3 10:34 编辑
这个回调函数的实质就是基于中断的条件函数。 这里算是中断函数的一个子块。
一般来讲我们开启中断往往具有一定目的,具体是什么看具体应用而定,比方基于定时器更新中断统计脉冲个数啊,基于DMA传输完成中断做相关处理啊等等。
当然,或许有人说我只是基于中断设置些标志位,即使这样最终还是基于标志的变更做相应的处理。
换言之,从这个角度讲,中断回调函数一定存在,差别在于是否需要把它单列出来,给它起个什么样的名字,具体内容由应用场景来定。
现在ST的库这样安排 就让程序结构很清晰,至于相应内容我们只需在已有回调函数里填空即可,内容可以复杂可以简单。当然 也可以不用它的,自己另行组织函数也行。
还有,前面有人提到它的资源占用问题。所以,这个地方还是要灵活运用,如果该回调函数内容多、耗时 长,系统里其它任务或中断实时要求也高,就得注意该回调函数所在中断的优先级。或者说,如果该回调函数要处理的事情不紧急或系统不允许它以中断方式耗时过多,我们可以考虑在中断里设立相关标志,然后在主程序基于标志状态再决定是否运行该回调函数。
|