硬件平台: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(); //等待中断 } }