打印
[STM32F4]

__disable_irq()

[复制链接]
1434|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
黑子的乌鸦|  楼主 | 2020-8-20 10:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
stm32f4,我直接调__disable_irq()这个函数,编译不过去,需要引入哪个头文件?谢谢各位大神

使用特权

评论回复
沙发
sonicll| | 2020-8-20 13:55 | 只看该作者
本帖最后由 sonicll 于 2020-8-20 14:22 编辑

你是不是keil版本太低了?这个函数是不需要头文件的,在armcc中,__disable_irq() 和 __enable_irq() 是所谓的intrinsic函数,编译器自动识别并替换为相关的指令,也就是说他们其实是编译器的一部分。
实在不行的话,用
__set_PRIMASK(1);
这条语句也是关中断的,效果是一样的,都是写内核的PRIMASK寄存器。

如果你用的不是keil,用的是IAR或者其他使用GCC的IDE,那么__disable_irq()函数在cmsis_iccarm.h或者cmsis_gcc.h里

使用特权

评论回复
板凳
香水城| | 2020-8-20 14:23 | 只看该作者
正常来讲 只要你IDE安装没问题的话,都可以直接使用。早期版本可能需指明CORE.CMx.h所在路径。

使用特权

评论回复
地板
黑子的乌鸦|  楼主 | 2020-8-22 14:15 | 只看该作者
sonicll 发表于 2020-8-20 13:55
你是不是keil版本太低了?这个函数是不需要头文件的,在armcc中,__disable_irq() 和 __enable_irq() 是所 ...

好的,谢谢

使用特权

评论回复
5
黑子的乌鸦|  楼主 | 2020-8-22 14:15 | 只看该作者
香水城 发表于 2020-8-20 14:23
正常来讲 只要你IDE安装没问题的话,都可以直接使用。早期版本可能需指明CORE.CMx.h所在路径。 ...

好的,谢谢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

68

帖子

1

粉丝