5241|7

66

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

STM32的中断嵌套问题? [复制链接]

1:我使用的是STM32F103VET6,现在用到了定时器中断和外部中断。这两个中断单独都能使用。但是在外部中断中调用定时器中断,则定时器不进行中断。猜测是在进入外部中断后关闭了总中断,从而定时器中断不响应。请问我查看了汇编代码,在进入中断函数中没有关闭总中断的指令呀?想要中断嵌套要在中断函数中开启总中断?我设置的定时器中断优先级是0,外部中断时2.
2:还有个问题是,我用的是KEIL+JLINK的方式,在KEIL中怎么查看内核寄存器的状态,我现在能查看外设寄存器的状态,但是在输入内核寄存器名字后,貌似都不认。如果能查看,这个内核寄存器的名字从哪得到?谢谢各位!
此帖出自stm32/stm8论坛

最新回复

                                 呵呵 谢谢ST_ARM的解答,问题原因我已经找到了,原因是开始的时候我设置了SYSTICK的优先级,在后面初始化调用SYSTICK的库函数时,库函数有设置了SYSTICK的优先级,所有第一次设置的无效,库函数将其设置为最低的优先级了。  详情 回复 发表于 2010-4-9 16:15
点赞 关注
 

回复
举报

63

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
                                 遇到同样的问题!期待
此帖出自stm32/stm8论坛
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
1、什么是在外部中断中调用定时器中断?中断可以调用吗?
2、怎么在KEIL中怎么查看内核寄存器的状态,你看Keil的使用说明书;你输入内核寄存器名字,你是怎么输入的?
此帖出自stm32/stm8论坛
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

4
 
1:在外部中断执行过程中调用定时器函数的,此函数主要是延时的作用。像SYSTICK。进行多少毫秒的延时。我现在测试的是我用串口中断,进行嵌套。就是我在外部中断函数中有个死循环,然后进行串口接受中断,当然串口的中断比外部端口中断优先级高。这样可以进行中断的嵌套。
SYSTICK的中断设置时NVIC_SetPriority(SysTick_IRQn,1)函数,外部引脚中断的优先级是2.
2:在WATCH的窗口中进行查看,比如rcc_cr这个时钟寄存器KEIL可以查看具体的状态,而系统定时器优先级寄存器PRI_15则KEIL软件不认,也就是看不到此寄存器状态。显示的是“??????”。
此帖出自stm32/stm8论坛
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

5
 
问题1:你的NVIC的中断组别是多少?
问题2:在Keil的菜单里可以选择Cortex-M3的内核寄存器的,你好好找找,我不使用Keil,没法给你具体的答案。
此帖出自stm32/stm8论坛
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

6
 
1:中断组设置
   NVIC_PriorityGroupConfig(NVIC_PriorityGroup_3);
    优先级设置
   // Enable the EXTI15_10 Interrupt 使能外部10-15中断引脚的内核使能
   NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQn ;
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
    NVIC_Init(&NVIC_InitStructure);
    SYSTICK优先级设置
   NVIC_SetPriority(SysTick_IRQn,0);
2:我找找。
此帖出自stm32/stm8论坛
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

7
 
                                 NVIC_SetPriority(SysTick_IRQn,0); 通过读取这个设置的数值,发现时0XF0;我将其写入0,读出来的也是F0 ,莫非不能修改?
此帖出自stm32/stm8论坛
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

8
 
                                 呵呵 谢谢ST_ARM的解答,问题原因我已经找到了,原因是开始的时候我设置了SYSTICK的优先级,在后面初始化调用SYSTICK的库函数时,库函数有设置了SYSTICK的优先级,所有第一次设置的无效,库函数将其设置为最低的优先级了。
此帖出自stm32/stm8论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表