我写stm8外部中断,老是不成功。
现贴一部分代码,请大侠指教。
int main(void)
{
/* Infinite loop */
//long int i;
/*设置内部高速时钟16M为主时钟*/
Clk_conf();
LED_conf();
Set_Led_Off();
Buttom_conf();
EnableInterrupt;
while(1)
{
/* 添加你的代码 */
//PD0_out=~PD0_out;
//for(i=0;i<200000;i++);
}
}
以上是主程序
void Buttom_conf(void)
{
PD_DDR&=0x1f;/*设置数据方向寄存器 1为输出,0为输入*/
PD_CR1|=0xe0;/*设置上拉输入*/
PD_CR2|=0xe0;/*设置中断*/
CPU_CCR|=0X28;
EXTI_CR1 &= (uint8_t)(~MASK_EXTI_CR1_PDIS);
EXTI_CR1 |= (uint8_t)((uint8_t)(0x02) << 6);/*设置为下降沿触发中断*/
}
以上是按键中断配置
#pragma vector=8
__interrupt void EXTI_PORTD_IRQHandler(void)
{
//if(!PD7_In)
PD0_out=~PD0_out;
}
以上是外部中断服务程序
请大神指教,谢谢! |