STM32————LIMIT非按键类开关信号输入控制LED

#include"stm32f10x.h"
#define LED_ON GPIO_ResetBits(GPIOC,GPIO_Pin_8)
#define LED_OFF GPIO_SetBits(GPIOC,GPIO_Pin_8)
#define LIMIT_LOW ReadInputDataBit(GPIOC,GPIO_Pin_13) == 0
#define LIMIT_HIGE ReadInputDataBit(GPIOC,GPIO_Pin_13) == 1
#define LEDPORT GPIO_Pin_8
#define LEDOUTPUTMODE GPIO_Mode_Out_PP
#define SPEED GPIO_Speed_50MHz
#define LIMITPORT GPIO_Pin_13
#define LIMITMODE GPIO_Mode_IPU
void InitLED_GPIO_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructrue;
RCC_APB2PeriphClockCmd(_APB2Periph_GPIOC,ENABLE);

 GPIO_InitStructrue.GPIO_Pin = LEDPORT;
 GPIO_InitStructrue.GPIO_Mode = LEDOUTPUTMODE;
 GPIO_InitStructrue.GPIO_Speed = SPEED;
 GPIO_Init(GPIOC,&GPIO_InitStructrue);

 GPIO_InitStructrue.GPIO_Pin = LIMITPORT;
 GPIO_InitStructrue.GPIO_Mode = LIMITMODE;
 GPIO_InitStructrue.GPIO_Speed = SPEED;
 GPIO_Init(GPIOC,&GPIO_InitStructrue);

}

void Delay_ms(u16 time)
{
u16 i;
while(time–)
{
i = 12000;
while(i–);
}
}

int main(void)
{
while(1)
{
if (LIMIT_LOW)
{
Delay_ms(10);
if (LIMIT_LOW)
LED_ON;
else
LED_OFF;
}
}
}

猜你喜欢

转载自blog.csdn.net/News53231323/article/details/113245180