学习之余记录几点注意,看客们随意看看,理解错的帮忙指点指点,谢谢啦。。。
配置中断需要做的事情;
1.配置IO口为输入,外部Key接GND,配置为 上拉,外部Key接VDD,配置为下拉
2.启用SYSCFG,遇到过不起用也能进中断的问题(PA0),不深究,按规矩来
3.配置SYSCFG_EXTICRx(这个在固件库中是数组形式,SYSCFG->EXTICR[x])
EXTIx的值用于选择P?的第x引脚作为中断输入
4.使能外部中断屏蔽EXTI_IMR,bit0-22
5.配置出发边沿EXTI_RTSR、
EXTI_FTSR,可以都启用
6.清EXTI_PR,写1清标志
7.使能中断NVIC->ISER,这个寄存器在内核手册,要特别注意
忽略了中断优先级的配置,这个可以参考内核手册(恨没有中文版,将就吧)
在第4章 Core peripherals-->4.4 System control block (SCB)
SCB->AIRCR配置抢占优先级和响应优先级的分组
说白了就四个bit位,你来定义用几位作为抢占,几位作为响应,具体配置看手册P213,Table51
而优先级的具体配置在NVIC->IPRx(在库函数中定义为数组uint8_t IP[240],总觉得按照命名规范他是不是应该定义为IPR[240]更好)
这里注意,个人觉得我看到的手册的描述和图示是有问题的(说好的240呢?)
该争议点以及其他未提及的寄存器,大家可以参阅下面的博文,写得挺好,适合新手
http://blog.csdn.net/w471176877/article/details/7957174
有些问题就像什么是抢占什么事响应,我觉得适当自己百度比较好,随便写写,求高人指点指点
一周热门 更多>