刚接触STM8L152单片机,想用PG4接按键和led,平时灯灭,用外部中断功能,来实现按键点亮led的功能。应该是按键按下去,灯亮,松手灯灭,
但是我的程序时按键按下去了,灯就一直是亮的了,松手后不灭,跳不出中断了。。。求高手指教啊 !!!急急急!!!!!
#include "stm8l15x.h"
#include "intrinsics.h"
#define led1_L() (GPIO_ResetBits(GPIOF,GPIO_Pin_4))
#define led1_H() (GPIO_SetBits(GPIOF,GPIO_Pin_4))
void CLK_Config()
{
CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_16); //配置系统时钟为HSI 16分频 ,1mhz
}
void GPIO_Config()
{
GPIO_Init( GPIOF, GPIO_Pin_All, GPIO_Mode_Out_PP_Low_Slow ); // GPIO配置,PF4上拉输出DI,低速
GPIO_Init(GPIOG,GPIO_Pin_4,GPIO_Mode_In_PU_IT); // GPIO配置,PG4上拉输入有中断
}
void main(void)
{
void CLK_Config();
GPIO_Config();
EXTI_SetPortSensitivity(EXTI_Port_G,EXTI_Trigger_Falling_Low) ;
EXTI_SetPinSensitivity(EXTI_Pin_4,EXTI_Trigger_Falling_Low ); //下降沿\低电平触发
__enable_interrupt();
while (1)
{
led1_H();
}
}
下面这个是PG4的中断子函数 ,是这样写吗 ?
INTERRUPT_HANDLER(EXTIB_G_IRQHandler,6)
{
led1_L();
EXTI_ClearITPendingBit(EXTI_IT_PortG);
EXTI_ClearITPendingBit(EXTI_IT_Pin4); //清除中断标志
}
求高手指教啊 !!!!! |