×
单片机 > 单片机程序设计 > 详情

STM32 GPIO 配置

发布时间:2020-06-19 发布时间:
|
固件库 V3.5  IAR

/*******************************************************************************
* 函数名称: GPIO_Configuration 
* 函数功能: 设置各GPIO端口功能 
* 参数变量: NONE
* 全局变量: NONE
* 调用函数:
* 修改时间: 
* 版    本: V1.0 
* 状    态:调试完成
*******************************************************************************/
void GPIO_Configuration(void) 
{     
      RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|
                             RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOD|
                             RCC_APB2Periph_GPIOE|
                             RCC_APB2Periph_GPIOF, ENABLE); //开所有IO时钟    
      /******************I0 A ***************************/
      GPIO_InitStructure.GPIO_Pin =GPIO_Pin_0|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_5|GPIO_Pin_9; //选择IO口
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//IO模式
      GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//IO 输出速度
      GPIO_Init(GPIOA,&GPIO_InitStructure);  //使用的LED灯相关的GPIO口初始化
      
      GPIO_InitStructure.GPIO_Pin =GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_10; //选择IO口
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING ;//浮空输入
      GPIO_Init(GPIOA,&GPIO_InitStructure);  //使用的LED灯相关的GPIO口初始化
      
     /******************I0 B ***************************/
      GPIO_InitStructure.GPIO_Pin =GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_5|
        GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_15; //选择IO口
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//IO模式
      GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//IO 输出速度
      GPIO_Init(GPIOB, &GPIO_InitStructure);  //使用的LED灯相关的GPIO口初始化
      
      GPIO_InitStructure.GPIO_Pin =GPIO_Pin_11|GPIO_Pin_14; //选择IO口
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING ;//浮空输入
      GPIO_Init(GPIOB, &GPIO_InitStructure);  //使用的LED灯相关的GPIO口初始化
      /******************I0 C ***************************/
      GPIO_InitStructure.GPIO_Pin =GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_4|
        GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|
          GPIO_Pin_11|GPIO_Pin_12; //选择IO口
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//IO模式
      GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//IO 输出速度
      GPIO_Init(GPIOC, &GPIO_InitStructure);  //使用的LED灯相关的GPIO口初始化
     
      
      GPIO_InitStructure.GPIO_Pin =GPIO_Pin_13; //选择IO口
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU ;//上拉输入
      GPIO_Init(GPIOC, &GPIO_InitStructure);  //使用的LED灯相关的GPIO口初始化
      
      GPIO_InitStructure.GPIO_Pin =GPIO_Pin_3; //选择IO口
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING ;//浮空输入
      GPIO_Init(GPIOC, &GPIO_InitStructure);  //使用的LED灯相关的GPIO口初始化
      /******************I0 D ***************************/
      GPIO_InitStructure.GPIO_Pin =GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_3|GPIO_Pin_4|
        GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|
          GPIO_Pin_11|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15; //选择IO口
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//IO模式
      GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//IO 输出速度
      GPIO_Init(GPIOD, &GPIO_InitStructure);  //使用的LED灯相关的GPIO口初始化
     
      GPIO_InitStructure.GPIO_Pin =GPIO_Pin_2; //选择IO口
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU ;//上拉输入
      GPIO_Init(GPIOD, &GPIO_InitStructure);  //使用的LED灯相关的GPIO口初始化
      /******************I0 E ***************************/
      GPIO_InitStructure.GPIO_Pin =GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4||GPIO_Pin_5; //选择IO口
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//IO模式
      GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//IO 输出速度
      GPIO_Init(GPIOE, &GPIO_InitStructure);  //使用的LED灯相关的GPIO口初始化
      
      GPIO_InitStructure.GPIO_Pin =GPIO_Pin_13; //选择IO口
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU ;//上拉输入
      GPIO_Init(GPIOE, &GPIO_InitStructure);  //使用的LED灯相关的GPIO口初始化
      
      /******************I0 F ***************************///开发板资源
      GPIO_InitStructure.GPIO_Pin =GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9; //选择IO口
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//IO模式
      GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//IO 输出速度
      GPIO_Init(GPIOF, &GPIO_InitStructure);  //使用的LED灯相关的GPIO口初始化
      GPIO_SetBits(GPIOF,GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9);//关闭所有的LED指示灯
      
      
     /*****************ADC IO 口***************/
      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4|GPIO_Pin_6;//选择IO 口
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;//IO 模式设置
      GPIO_Init(GPIOA, &GPIO_InitStructure);//写入 初始化值 
       /*****************I2C 口***************/
      GPIO_InitStructure.GPIO_Pin =GPIO_Pin_6|GPIO_Pin_7; //选择IO口
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_OD;//复用I2C 设置 输出模式
      GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;//IO 输出速度
      GPIO_Init(GPIOB, &GPIO_InitStructure);  //

}

GPIO_ResetBits(GPIOF,GPIO_Pin_9); //GPIOF_9 =0;
GPIO_SetBits(GPIOF,GPIO_Pin_9); //GPIOF_9 =1;

关键字:STM32  GPIO  配置 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
51单片机CO2检测显示程序解析