本帖最后由 飘落的叶 于 2013-4-10 10:46 编辑
声明:我所使用的 开发板为“神舟三号 V1.1”,其芯片型号为:STM32F103ZET6;一、实现的功能 实现了STM32进入外部中断 二、实验操作及现象 1.打开工程文件夹,双击RVMDK文件夹,用KILE4打开(利用J_link),进行程序的下载。 2.程序运行后可根据4个LED灯来判断STM32当前运行的状态: DS1/DS2亮、DS3/DS4灭表示运行状态; DS1、DS2灭表示由EXT0(即GPIOA_Pin_0)进入中断; DS3、DS4亮表示由EXT8(即GPIOA_Pin_8)进入中断; 在由EXTI0进入中断之后,程序进入死循环(即while循环中,DS1、DS2 灭), 此时若发生EXTI8中断(即DS3、DS4亮),则表明中断嵌套成功; 三、异常和中断学习 STM32的异常和中断组成,主要由内核异常和外部中断组成; 1.内核异常 Cortex具有强大的异常响应系统,将能够打断当前代码执行流程的事件分为异常和中断,并将其用一个表管理起来;而STM32对这个表进行了重新编排,将-3到6的定义为系统异常,其中编号为负的不可设置优先权; 2.外部中断 编号从7开始的为外部中断,其优先级可进行自由设置; 进入中断: —配置相应的GPIO引脚作为中断脉冲输入管脚; —配置相应的EXTI线为中断线; —配置各中断的抢占优先级和响应优先级,以及中断组的选择; (若不进行中断组的配置,则系统默认的为中断组0) 退出中断: 由系统自行退出; 四、程序流程分析 程序流程见附件《STM32学习笔记之EXTI流程图.pdf》 五、程序代码 程序代码见附件"EXTI.rar"
0
|
|
|
|
刚学习完外部中断模块,自己总结的一点小经验,哪里不好的希望大家多提意见!
|
|
|
|
|
飘落的叶 发表于 2013-4-10 10:48
刚学习完外部中断模块,自己总结的一点小经验,哪里不好的希望大家多提意见! ...
楼主你好,我在做gpio中断时候遇到一个问题,麻烦你给分析下啊、 问题是:
我通过GPIO引脚接收方波,设置高电平触发IRQ中断,触发后各响应的中断状态寄存器现实中断都发生了,但是程序没有发生任何的跳转,请问是怎么回事?
|
|
|
|
|
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
|
|
|
|
|
诚实无声 发表于 2013-4-11 19:11
楼主你好,我在做gpio中断时候遇到一个问题,麻烦你给分析下啊、 问题是:
我通过GPIO引脚接收方波, ...
不好意思,最近在忙其他的,一直没上网!
你设置的是高电平触发,应该是属于上升沿触发!你可以使用KILE软件的在线仿真看看到底进没进中断(在程序中设置断点)!
|
|
|
|
|
恶搞发帖人和婴儿也会让它愈合一会热外收入和行业如何如何恢复赎回费的话
|
|
|
|
|
风格仍然火热汇聚他人家庭计划发售股份计算技术股份结构发生纠纷官司建个房间发送给肌肤更加舒服
|
|
|
|
|
地方好的发挥地方好的防守对方回复和地方好的发挥烦得很
|
|
|
|
|
在 void EXTI_Init(EXTI_InitTypeDef* EXTI_InitStruct)中有下面的语句
EXTI->IMR &= ~EXTI_InitStruct->EXTI_Line;
EXTI->EMR &= ~EXTI_InitStruct->EXTI_Line;
这好像好像把我想要中断的位中断都屏蔽了,但我试验却是能进外部中断的。求解释一下,感激不尽
|
|
|
|
|