2022/5/3
U1 GPIO操作LED与BEEP
一、是什么
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