外部中断标志位清除不了
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了外部中断标志位清除不了相关的知识,希望对你有一定的参考价值。
MSP430程序,在IO口初始化时设置P2IE|=BIT3;P2IES=0;P2IFG =0;此时能清除中断标志位,但进入中断以后用P2IFG =0清除中断标志位清除不了,中断标志位一直为P2IFG=0x08,求高手指教
参考技术A 2.引脚设置
PxDIR
输入
/
输出方向寄存器
PxIN
输入寄存器
PxOUT
输出寄存器
PxIFG
中断标志寄存器
PxIE
中断使能寄存器
PxSEL
功能选择寄存器
(
1
)若使用
P1
口的部分引脚作为中断方式,在开总中断之前务必
设置好
P1IFG
、
P1IES
、
P1IE
寄存器的相应位,并确保相应引
脚为输入方向。
(
2
)
为了尽量降低功耗,
对连接引脚应设定为
IO
功能并设为输出。
(
3
)中断标志需要软件清除!可以用软件置位产生中断。
MSP430
的
IO
中断由
P1
口和
P2
口输入变化的电平触发,
P1
和
P2
各
有八个输入
IO
,
P1
的八个
IO
共用一个中断向量,
P2
的八个
IO
共用
另一个中断向量。
在中断服务程序中判断到底是哪个
IO
口触发中断。
STM32的RTC中断标志只能手动清除
背景:
最近在做一个stm32的项目,其中用到RTC的实时时钟功能。时钟源采用外部32.768K晶振,时钟预分频设置为32767,目的是为了产生1秒的中断,然后在中断处理函数中更新实时年月日时分秒。
解决方案:
但是由于缺乏经验,RTC中断处理函数中并没有使用RTC_ClearITPendingBit(RTC_IT_SEC)将中断标志位清除,导致程序在NVIC_Init()之后一直跳转到中断函数中,无法执行接下来的代码。
结论:
通过手动清除秒中断标志位之后,问题迎刃而解。说明STM32的RTC中断标志位无法自动清除,必须要手动清除,否则会出现上述情况。
以上是关于外部中断标志位清除不了的主要内容,如果未能解决你的问题,请参考以下文章
MCS-51系列单片机的有几个中断源?各中断标志是如何产生的?如何清除各中断标志?