U12-15 GPIO操作LED与BEEP


2022/5/3


一、是什么

PE.5=LED0,低电平开灯
PB.5=LED1,低电平开灯
PB.8=BEEP,低电平关蜂鸣器

二、怎么用

1.GPIO初始化函数模块

GPIO_InitTypeDef的结构体指针
结构体:
  第一个参数用来指定哪一个IO口。//查电路图
  第二个参数用来指定速度。//50MHZ目前不改
  第三个参数用来指定模式。//查数据手册,8种
typedef struct
{
  uint16_t GPIO_Pin;             /*!< Specifies the GPIO pins to be configured.
                                      This parameter can be any value of @ref GPIO_pins_define */
  GPIOSpeed_TypeDef GPIO_Speed;  /*!< Specifies the speed for the selected pins.
                                      This parameter can be a value of @ref GPIOSpeed_TypeDef */
  GPIOMode_TypeDef GPIO_Mode;    /*!< Specifies the operating mode for the selected pins.
                                      This parameter can be a value of @ref GPIOMode_TypeDef */
}GPIO_InitTypeDef;

1.LED(PB5、PE5)

//初始化PB5和PE5为输出口.并使能这两个口的时钟		    
//LED IO初始化
void LED_Init(void)
{
 
 GPIO_InitTypeDef  GPIO_InitStructure;//定义语句必须写在前面
 	
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOE, ENABLE);	 //使能PB,PE端口时钟
	
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;				 //LED0-->PB.5 端口配置
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 		 //推挽输出
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;		 //IO口速度为50MHz
 GPIO_Init(GPIOB, &GPIO_InitStructure);					 //根据设定参数初始化GPIOB.5
 GPIO_SetBits(GPIOB,GPIO_Pin_5);						 //PB.5 输出高

 GPIO_Init(GPIOE, &GPIO_InitStructure);	  				 
 //PE5与PB5结构一致,就不再写一遍了,但是GPIO_Init不可以写成GPIO_Init(A|B,structure)的格式,无法简写,上面RCC_cmd 时钟使能语句可以
 GPIO_SetBits(GPIOE,GPIO_Pin_5); 						 //PE.5 输出高 
}

开关灯:

GPIO_SetBits(GPIOB,GPIO_Pin_5);		//开灯				
GPIO_ResetBits(GPIOB,GPIO_Pin_5);   //关灯

2.BEEP

void BEEP_Init(void)
{
 
 GPIO_InitTypeDef  GPIO_InitStructure;
 	
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);	 //使能GPIOB端口时钟
 
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;				 //BEEP-->PB.8 端口配置
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 		 //推挽输出
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;	 //速度为50MHz
 GPIO_Init(GPIOB, &GPIO_InitStructure);	 //根据参数初始化GPIOB.8
 
 GPIO_ResetBits(GPIOB,GPIO_Pin_8);//输出0,关闭蜂鸣器输出

}

开关蜂鸣器:

GPIO_SetBits(GPIOB,GPIO_Pin_8);		//开				
GPIO_ResetBits(GPIOB,GPIO_Pin_8);   //关

三、通用GPIO

1.GPIO模式

STM32的 GPIO模式有以下几种:

GPIO_Mode_AIN – 模拟输入
GPIO_Mode_IN_FLOATING – 输入浮空
GPIO_Mode_IPD – 输入下拉
GPIO_Mode_IPU – 输入上拉
GPIO_Mode_Out_OD – 开漏输出
GPIO_Mode_Out_PP – 推挽式输出
GPIO_Mode_AF_OD – 开漏复用功能
GPIO_Mode_AF_PP – 推挽式复用功能

2.外设 I/O配置模式选择

《开发指南(库函数)》
《中文手册》

————————————————
收录部分:
1.CSDN博主「夏沫の浅雨」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_42992084/article/details/104089363

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Atom_DIY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值