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

写中断函数位置的问题

[复制链接]
安少89 提问时间:2015-11-10 10:05 /
以前只用过F103,用的也是标准库,学的时候就被告诉所有中断函数都写在stm32f10x_it.c里。之前论坛里看见有人发了个帖子关于串口环形队列的,就下了程序学习学习,结果这一看程序彻底把我搞蒙了,因为它的串口中断函数根本没写在stm32f10x_it.c里,我一时还没找到具体在哪,以为没有中断函数呢,但一想不可能啊,它介绍的时候就说了用的串口发送中断,过了一段时间才发现在串口配置的.c文件里了。后来,抢到了L476的板子,这一接触到HAL更蒙了,stm32l4xx_it.c里不是没看见中断函数就是用的callback函数。表示变化太大接受不了啊。最后想说一下既然准备了一个写中断函数的.c文件为啥都要写在其他地方呢,多增加看程序的难度啊(至少我看程序的难度增加了)。
收藏 评论7 发布时间:2015-11-10 10:05

举报

7个回答
qianfan 回答时间:2015-11-10 14:15:36
安 发表于 2015-11-10 10:59
只要接口对,写哪儿都行。有的习惯写到对应的模块驱动中。

+1.
1。太多的中断,如果所有的中断都写在it.c文件中,那it.c文件就太大了。
2。当在it.c文件中写中断的时候,免不了与其他的c文件共享变量。如果这样的话,还需要头文件或者extern来处理,太麻烦。
3。如果全写在it.c中的话,读程序也很头疼。看到it.c中的一个中断,还要去翻翻其他的程序看看这个中断中使用的变量,也不利于阅读。

个人推荐还是将中断写在相应的驱动模块中。
jiaswang 回答时间:2015-11-10 10:10:46
写在it.c里面也应该没问题的,看个人习惯,楼主可以试下
安少89 回答时间:2015-11-10 10:23:52
我也感觉应该是写在哪有可以的
废鱼 回答时间:2015-11-10 10:59:36
只要接口对,写哪儿都行。有的习惯写到对应的模块驱动中。
安少89 回答时间:2015-11-10 11:15:38
安 发表于 2015-11-10 10:59
只要接口对,写哪儿都行。有的习惯写到对应的模块驱动中。

哦,我之前学的时候教我的人告诉我必须写在it.c里面。以为写在其他地方不工作呢
aabird 回答时间:2015-11-10 14:06:58
这个挺高级呀,哈哈,确实我也没有研究过
creep 回答时间:2015-11-10 14:33:49
QianFan 发表于 2015-11-10 14:15
+1.
1。太多的中断,如果所有的中断都写在it.c文件中,那it.c文件就太大了。
2。当在it.c文件中写中断的 ...

写到相应的模块中是极好的解决办法,特别是有共享变量时!
不过现在的HAL都是使用的回调函数的形式,所以处理好回调函数的位置即可。

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版