#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;
}
}
}