微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > STM32 GPIO 配置

STM32 GPIO 配置

时间:12-03 来源:互联网 点击:
固件库 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); //

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top