我找一下午了,就是不知道为什么进不了中断,拿万用表测试KEY1两端电压,发现竟然都是0.001V,接地了。是不是IO口配置有问题啊?实在想不通了,求帮忙。
void key_ext(void)
{
PD_DDR=0xef;//PD7--KEY1输入
PD_CR1=0x80;//PD7--上拉输入
PD_CR2=0x80;//PD7--中断使能
EXTI_CR1 &= (u8)(~MASK_EXTI_CR1_PDIS ); /*清除标志位 */
EXTI_CR1 = (u8)( 0x80 ); /*仅下升沿触发 */
PC_DDR=0x08;//PC3--LED3输出
PC_CR1=0x08;//PC3--推挽输出
PC_CR2=0x08;//PC3--最大输出速度10MHz
}
void main(void)
{
DisableInterrupt;//关总中断
Clk_conf();
key_ext(); //外部中断初始化
//Set_Led_Off();//关闭所有LED灯
EnableInterrupt;//开总中断
while(1)
{
PC_ODR=0x08;//关闭LED3
delay_ms(100);
}
}
----------------------------------------------------中断函数------------------------------------------------
#pragma vector=8
__interrupt void EXTI_PORTD_IRQHandler(void)
{
DisableInterrupt;//关总中断
PC_ODR=0x00;//点亮LED3;
delay_ms(1000);
EnableInterrupt;//开总中断
} |