#include 'stm32f10x.h' // Device header

void LED_Init(void) { RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 | GPIO_Pin_2| GPIO_Pin_3| GPIO_Pin_4;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);

GPIO_SetBits(GPIOA, GPIO_Pin_1 | GPIO_Pin_2| GPIO_Pin_3| GPIO_Pin_4);

}

void LED1_ON(void) { GPIO_ResetBits(GPIOA, GPIO_Pin_1); }

void LED1_OFF(void) { GPIO_SetBits(GPIOA, GPIO_Pin_1); }

void LED1_Turn(void) { if (GPIO_ReadOutputDataBit(GPIOA, GPIO_Pin_1) == 0) { GPIO_SetBits(GPIOA, GPIO_Pin_1); } else { GPIO_ResetBits(GPIOA, GPIO_Pin_1); } }

void LED2_ON(void) { GPIO_ResetBits(GPIOA, GPIO_Pin_2); }

void LED2_OFF(void) { GPIO_SetBits(GPIOA, GPIO_Pin_2); }

void LED2_Turn(void) { if (GPIO_ReadOutputDataBit(GPIOA, GPIO_Pin_2) == 0) { GPIO_SetBits(GPIOA, GPIO_Pin_2); } else { GPIO_ResetBits(GPIOA, GPIO_Pin_2); } } void LED3_ON(void) { GPIO_ResetBits(GPIOA, GPIO_Pin_3); }

void LED3_OFF(void) { GPIO_SetBits(GPIOA, GPIO_Pin_3); }

void LED3_Turn(void) { if (GPIO_ReadOutputDataBit(GPIOA, GPIO_Pin_3) == 0) { GPIO_SetBits(GPIOA, GPIO_Pin_3); } else { GPIO_ResetBits(GPIOA, GPIO_Pin_3); } }

void LED4_ON(void) { GPIO_ResetBits(GPIOA, GPIO_Pin_4); }

void LED4_OFF(void) { GPIO_SetBits(GPIOA, GPIO_Pin_4); }

void LED4_Turn(void) { if (GPIO_ReadOutputDataBit(GPIOA, GPIO_Pin_4) == 0) { GPIO_SetBits(GPIOA, GPIO_Pin_4); } else { GPIO_ResetBits(GPIOA, GPIO_Pin_4); } }

int main() { LED_Init();

while(1)
{
	LED1_Turn();
	LED2_Turn();
	LED3_Turn();
	LED4_Turn();
}

}

STM32F10x LED控制示例:GPIO端口配置及闪烁控制

原文地址: https://www.cveoy.top/t/topic/oAXv 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录