void MY_NVIC_SetVectorTable(u32 NVIC_VectTab, u32 Offset)
{
//检查参数合法性
assert_param(IS_NVIC_VECTTAB(NVIC_VectTab));
assert_param(IS_NVIC_OFFSET(Offset));
SCB->VTOR = NVIC_VectTab|(Offset & (u32)0x1FFFFF80);//设置NVIC的向量表偏移寄存器
//用于标识向量表是在CODE区还是在RAM区
}
问个问题,为什么(Offset & (u32)0x1FFFFF80) 为什么使用0x1FFFFF80,0x1FFFFF80是怎样得来的呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
另外,如果是0x100,那么意味着STM32的中断数+16个系统异常中断数<=64是吗? STM32各系列中是有一款的中断数少于等于48( 64-16 )的吗?
谢谢。
回复【14楼】正点原子:
---------------------------------
---------------------------------
会不会出错,自己测试一下就知道了.
至于为什么是100,貌似在CM3权威指南说了,你看看吧.
---------------------------------
为什么“低7位没有用到,所以&0X80”啊。谢谢
一周热门 更多>