学习之余记录几点注意,看客们随意看看,理解错的帮忙指点指点,谢谢啦。。。
配置中断需要做的事情;
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呢?)
a33630156acc222266421681b6a6b5ac_295.png (0 Bytes, 下载次数: 0)
下载附件
2010-12-14 22:54 上传 |