硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4916|回复: 6
收起左侧

[有问必答] V5-005a_NVIC实验_IRQMask,按下k1键所有中断都不响应了

[复制链接]

22

主题

24

回帖

90

积分

初级会员

积分
90
发表于 2015-3-25 16:17:56 | 显示全部楼层 |阅读模式
V5-005a_NVIC实验_IRQMask,按下k1键为什么所有中断都不响应了?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117586
QQ
发表于 2015-3-25 16:20:46 | 显示全部楼层
深入研究下NVIC,再搞这个实验。特别是教程里面指定说明的Cortex-M3权威指南章节。这样效果会更好,花几天时间把NVIC搞懂意义重大。
回复

使用道具 举报

22

主题

24

回帖

90

积分

初级会员

积分
90
 楼主| 发表于 2015-3-25 17:41:26 | 显示全部楼层
我的理解应该是屏蔽3,4定时器,而不应该屏蔽定时器2,和键盘中断及滴答定时器中断。不知理解的对不对?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117586
QQ
发表于 2015-3-25 18:05:26 | 显示全部楼层
正确,这个例子我在main.c文件里面有注释或者看我们用户手册,你运行这个例子的时候都关闭了?
我测试了一下,可以的。
/*
*********************************************************************************************************
*
*    模块名称 : 主程序模块。
*    文件名称 : main.c
*    版    本 : V1.1
*    说    明 : 本期教程主要是为了配合第12章:NVIC而做的例子
*              这个例子主要跟大家讲中断屏蔽寄存器BASEPRI的使用
*              1. 用定时器TIM2,TIM3,TIM4创建3个定时器中断,中断里面做LED翻转
*                          抢占优先级  子优先级
*                 TIM2        0           0
*                 TIM3        1           0
*                 TIM4        2           0
*              2. 设置NVIC分组是2, 0-3个抢占优先级,0-3个子优先级,所有按键的中断
*                 抢占优先级是0.
*              3. 按键K1按下,在按键中断里面设置BASEPRI = 0x40,屏蔽抢占优先级是1,2,3的所有中断              
*                 串口打印相关信息,这时TIM3和TIM4的中断将被屏蔽掉。
*              4. 按键K2按下,在按键中断里面设置BASEPRI = 0x00,不屏蔽任何优先级,这时TIM3,TIM4
*                 继续工作。
*              5. 为了保证按键扫描程序继续工作,设置嘀嗒定时器为最高优先级NVIC_SetPriority(SysTick_IRQn, 0);
*                 也就是抢占优先级是0,子优先级也是0;
回复

使用道具 举报

22

主题

24

回帖

90

积分

初级会员

积分
90
 楼主| 发表于 2015-3-26 10:15:39 | 显示全部楼层
在初始化串口程序里又执行了下面的函数,去掉可以了。
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
回复

使用道具 举报

6

主题

60

回帖

78

积分

初级会员

积分
78
发表于 2018-10-16 00:33:10 | 显示全部楼层
这个例程我在运行的时候,按下K1,串口没有打印相应的文字。直到按下K2,才把两行文字都打出来。
我把打印的语句放到了EXTI9_5_IRQHandler()函数里面的__set_BASEPRI(0x40)语句之前,但也不行,同样得按下K2之后才打印。这是为什么呢?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117586
QQ
发表于 2018-10-16 00:54:11 | 显示全部楼层
红烧鱼头 发表于 2018-10-16 00:33
这个例程我在运行的时候,按下K1,串口没有打印相应的文字。直到按下K2,才把两行文字都打出来。
我把打印 ...

QQ截图20181016005349.png
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-17 23:16 , Processed in 0.043362 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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