Files
STM32/3-5 GPIO_光敏传感器/Hardware/LED.c

48 lines
1.3 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#include "stm32f10x.h" // Device header
#include "stdio.h"
void LED_Init(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
GPIO_InitTypeDef GPIO_InitStruct; //初始化GPIO定义GPIO结构体以下设置其参数
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;//GPIO_Mode_Out_OD 开漏模式,低电平驱动,高电平时为高阻态;GPIO_Mode_Out_PP 推挽模式,高低电平都有驱动
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_All;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIO_InitStruct);
GPIO_SetBits(GPIOA,GPIO_Pin_1 | GPIO_Pin_2);//初始化LED后不点亮
}
/*!< Pin x selected ON or OFF
parameter opt is high or low;表示高低电平
*/
enum V_opt{//高低电压
high,
low
};
/* 选择GPIOA外设进行LED控制 opt有 high 和 low */
//这个函数有点没用
void GPIOA_LED(uint16_t GPIO_Pin_x,enum V_opt opt)
{
if(opt == high) GPIO_SetBits(GPIOA,GPIO_Pin_x);
if(opt == low) GPIO_ResetBits(GPIOA,GPIO_Pin_x);
}
/*
控制GPIOA灯泡亮灭
GPIO_Pin_x表示为哪个按键引脚GPIO_Pin_LED表示为哪个灯泡引脚
*/
void GPIOA_LED_Turn(uint16_t GPIO_Pin_x)
{
if(GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_x) == 0)
GPIO_SetBits(GPIOA,GPIO_Pin_x);
else
GPIO_ResetBits(GPIOA,GPIO_Pin_x);
}