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

写中断函数位置的问题

[复制链接]
安少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管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版