硬件平台:stm8s103
编译环境:IAR for stm8
#include <iostm8s103f3.h>
#include <intrinsics.h>
// 设置PD4中断向量及中断函数
#pragma vector = 8
__interrupt void EXTI_PORTD_IRQHandler(void)
{
PD_ODR_ODR3 = !PD_ODR_ODR3; // PD3输出电平翻转
}
void main()
{
__disable_interrupt(); //禁用全局中断
PD_ODR = 0; //关闭所有PD脚
PD_DDR = 0xff; //设置所有PD脚为输出
PD_CR1 = 0xff; //设置所有PD脚为上拉输出
PD_CR2 = 0xff; //设置输出速度为10MHz
//
// Now configure the input pin.
//
PD_DDR_DDR4 = 0; //设置PD4为输入
PD_CR1_C14 = 0; //设置PD4为浮空输入
//
// Set up the interrupt.
//
EXTI_CR1_PDIS = 2; //设置PD组仅下降沿触发中断
EXTI_CR2_TLIS = 0; //高级中断仅下降沿触发
__enable_interrupt(); //使能全局中断
while (1)
{
__wait_for_interrupt(); //等待中断
}
}