您的位置 首页 硬件

STM8-使用外部中止编写两个按键操控灯的亮灭

目的:熟悉外部中断的使用。(两个按键控制灯的亮灭)includestm8shincludestm8s_extihdefineucharunsignedchardefineui

意图:了解外部中止的运用。(两个按键操控灯的亮灭)
#include”stm8s.h”
#include “stm8s_exti.h”
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
void delay(uint i)
{
while(i–);
}
void main()
{

GPIO_DeInit(GPIOD);
GPIO_Init(GPIOD, GPIO_PIN_0, GPIO_MODE_OUT_PP_LOW_FAST);//输出
GPIO_Init(GPIOD, GPIO_PIN_1, GPIO_MODE_OUT_PP_LOW_FAST);//输出
GPIO_DeInit(GPIOB);
GPIO_Init(GPIOB, GPIO_PIN_0, GPIO_MODE_IN_FL_IT);//输入
GPIO_Init(GPIOB, GPIO_PIN_1, GPIO_MODE_IN_FL_IT);//输入

EXTI_DeInit();
EXTI_SetExtIntSensitivity(EXTI_PORT_GPIOB, EXTI_SENSITIVITY_FALL_ONLY);


enableInterrupts();
while (1)
{
}
}
#pragma vector=6//端口B中止编号为4,4+2=6
__interrupt void EXIT_PORTB_IRQHander(void)
{
if((GPIO_ReadInputData(GPIOB)&GPIO_PIN_0)==0)
{
delay(250);//延时消颤动
if((GPIO_ReadInputData(GPIOB)&GPIO_PIN_0)==0)
{
while((GPIO_ReadInputData(GPIOB)&GPIO_PIN_0)==0);//开释检测
GPIO_WriteReverse(GPIOD, GPIO_PIN_0);
}
}
if((GPIO_ReadInputData(GPIOB)&GPIO_PIN_1)==0)
{
delay(250);//延时消颤动
if((GPIO_ReadInputData(GPIOB)&GPIO_PIN_1)==0)
{
while((GPIO_ReadInputData(GPIOB)&GPIO_PIN_1)==0);//开释检测
GPIO_WriteReverse(GPIOD, GPIO_PIN_1);
}
}

}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/yingjian/259878.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部