void LED_init(void)函数解释

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_InitStructure.GPIO_Pin = GPIO_Pin_5;                 //LED1-->PE.5 端口配置, 推挽输出
 GPIO_Init(GPIOE, &GPIO_InitStructure);                       //推挽输出 ,IO口速度为50MHz
 GPIO_SetBits(GPIOE,GPIO_Pin_5);                          //PE.5 输出高 
    
}

第一条语句

 GPIO_InitTypeDef  GPIO_InitStructure;我们跳转到GPIO_InitTypeDef中可以看到其结构体内容为

typedef struct
{
  uint16_t GPIO_Pin;                         

  GPIOSpeed_TypeDef GPIO_Speed; 

  GPIOMode_TypeDef GPIO_Mode;  
                                     
}GPIO_InitTypeDef;

初始化结构体。

该语句作用是将GPIO_InitTypeDef结构体命名为GPIO_InitStructure。

第二条语句

 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOE, ENABLE);  

该函数原型是void RCC_APB2PeriphClockCmd(u32 RCC_APV2Periph, FunctionalState NewState)


第一个参数就是由上面选取。
第二个参数则为ENABLE或者DISABLE。

第三,四,五条语句

        对GPIO结构体初始化.

 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);         

        GPIO初始化 PB口。

第七条语句   

     GPIO_SetBits(GPIOB,GPIO_Pin_5);    输出高电平

     GPIO_ResetBits(GPIOB,GPIO_PIn_5);        输出低电平

最后三局与前边第 2 3 4 5 句加起来的作用一样不过是将PB端口,变为了PE端口。

 

版权声明:本文为CSDN博主「shihuntz」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/shihuntz/article/details/122881435

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_InitStructure.GPIO_Pin = GPIO_Pin_5;                 //LED1-->PE.5 端口配置, 推挽输出
 GPIO_Init(GPIOE, &GPIO_InitStructure);                       //推挽输出 ,IO口速度为50MHz
 GPIO_SetBits(GPIOE,GPIO_Pin_5);                          //PE.5 输出高 
    
}

第一条语句

 GPIO_InitTypeDef  GPIO_InitStructure;我们跳转到GPIO_InitTypeDef中可以看到其结构体内容为

typedef struct
{
  uint16_t GPIO_Pin;                         

  GPIOSpeed_TypeDef GPIO_Speed; 

  GPIOMode_TypeDef GPIO_Mode;  
                                     
}GPIO_InitTypeDef;

初始化结构体。

该语句作用是将GPIO_InitTypeDef结构体命名为GPIO_InitStructure。

第二条语句

 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOE, ENABLE);  

该函数原型是void RCC_APB2PeriphClockCmd(u32 RCC_APV2Periph, FunctionalState NewState)


第一个参数就是由上面选取。
第二个参数则为ENABLE或者DISABLE。

第三,四,五条语句

        对GPIO结构体初始化.

 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);         

        GPIO初始化 PB口。

第七条语句   

     GPIO_SetBits(GPIOB,GPIO_Pin_5);    输出高电平

     GPIO_ResetBits(GPIOB,GPIO_PIn_5);        输出低电平

最后三局与前边第 2 3 4 5 句加起来的作用一样不过是将PB端口,变为了PE端口。

 

版权声明:本文为CSDN博主「shihuntz」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/shihuntz/article/details/122881435

生成海报
点赞 0

shihuntz

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

基于STM32F103的智能门锁系统

基于STM32F103的智能门锁系统 直接说明实现了什么效果 1 指纹解锁(基于AS608) 2 RFID解锁(基于RC522) 3 密码解锁 (基于LCD电容屏触摸控制) 4 蓝牙解锁

基于STM32F103C8T6的蓝牙控制小车(一)

蓝牙小车是自己学习使用的,还是比较简单的。在这里分享一下自己做蓝牙小车的一些思路。 一、硬件需求 1.STM32F103C8T6单片机 2.小车套件(包括直流减速电机和亚克力底板) 3.L298

基于STM32的0.96寸OLED显示屏显示数据

实验要求 理解OLED屏显和汉字点阵编码原理,使用STM32F103的SPI或IIC接口实现以下功能: 显示自己的学号和姓名; 显示AHT20的温度和湿度; 上下或左右的滑动显示长字