打印
[技术问答]

M0中断使能控制寄存器

[复制链接]
1067|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
forget345|  楼主 | 2015-6-5 21:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
static __INLINE void NVIC_EnableIRQ(IRQn_Type IRQn)
{
  NVIC->ISER[0] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* enable interrupt */
}
为什么 NVIC->ISER[0] 不需要或操作?直接等于不会影响别的中断吗?是应为ISER 定义为数组的原因?为何?具体如何实现?
沙发
戈卫东| | 2015-6-6 07:00 | 只看该作者
这些寄存器是写1有效,写0无效——其它“Set”寄存器也都这样

使用特权

评论回复
板凳
forget345|  楼主 | 2015-6-6 09:04 | 只看该作者
正解是 清除中断使能是另一个寄存器

使用特权

评论回复
地板
gaoyang9992006| | 2015-6-6 09:17 | 只看该作者
这个就这样实现的,想具体了解你就要把这几个寄存器都画出来然后试试各种情况下如何。

使用特权

评论回复
5
奥德赛| | 2015-6-6 21:08 | 只看该作者
就是这样写啊,直接等于貌似会有影响啊

使用特权

评论回复
6
小猫爱吃鱼| | 2015-6-9 23:24 | 只看该作者
我看了开始也不是太明白,后来慢慢就明白了

使用特权

评论回复
7
芙蓉洞| | 2015-6-10 08:36 | 只看该作者
试了一下,加不加或对别的都没有影响

使用特权

评论回复
8
gaoyang9992006| | 2015-6-11 16:44 | 只看该作者
这种方法写程序简单多了。

使用特权

评论回复
9
mintspring| | 2015-6-14 11:46 | 只看该作者
直接操作可能会影响到其他的功能吧,另外这个操作更直观。

使用特权

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

本版积分规则

18

主题

96

帖子

1

粉丝