Upload files to "3-5 GPIO_光敏传感器/Hardware"

This commit is contained in:
2026-02-21 20:02:19 -05:00
parent e4332cafe8
commit 6a3b8de88d
5 changed files with 160 additions and 0 deletions

View File

@@ -0,0 +1,47 @@
#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);
}