OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5114|回复: 1

STM32中断初始化函数

[复制链接]

11

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
93
金钱
93
注册时间
2014-4-2
在线时间
0 小时
发表于 2014-5-8 15:14:09 | 显示全部楼层 |阅读模式
5金钱
STM32中断初始化函数
void MY_NVIC_Init(u8 NVIC_PreemptionPriority,u8 NVIC_SubPriority,u8 NVIC_Channel,u8 NVIC_Group)  

u32 temp;
u8 IPRADDR=NVIC_Channel/4;  //??×é??????4??,????×é???· 
u8 IPROFFSET=NVIC_Channel%4;//??×é????????
IPROFFSET=IPROFFSET*8+4;    //???????????·??????
MY_NVIC_PriorityGroupConfig(NVIC_Group);//?è??·?×é

temp=NVIC_PreemptionPriority<<(4-NVIC_Group);  
temp|=NVIC_SubPriority&(0x0f>>NVIC_Group);
temp&=0xf;//????????

if(NVIC_Channel<32)NVIC->ISER[0]|=1<<NVIC_Channel;//??????????(?????????°,?à·???×÷??OK)
else NVIC->ISER[1]|=1<<(NVIC_Channel-32);    
NVIC->IPR[IPRADDR]|=temp<<IPROFFSET;//?è???ì????????????????????           
}

中的

temp=NVIC_PreemptionPriority<<(4-NVIC_Group);  
temp|=NVIC_SubPriority&(0x0f>>NVIC_Group);
temp&=0xf;

这三句我只知道要求出最终写入中断优先级寄存器的值,但是这三句的思想或者思路是什么??
求原子哥解惑???????????????

最佳答案

查看完整内容[请看2#楼]

唉,瞬间懂了,我去!!!!不劳烦你们了,哈哈!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

11

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
93
金钱
93
注册时间
2014-4-2
在线时间
0 小时
 楼主| 发表于 2014-5-8 15:14:10 | 显示全部楼层
唉,瞬间懂了,我去!!!!不劳烦你们了,哈哈!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-8 02:19

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表