STM32F407入门学习(1)---GPIO配置

内容摘要

本博客主要为记录近半年时间学习STM32开发的个人学习过程,使用的为意法半导体(ST)公司的32位微控制器 STM32F4 为核心的STM32F407ZET6。

一、简要介绍

STM32F407的输入输出管脚有以下几种配置方式:
1. GPIO_Mode_IN(输入模式)
2. GPIO_Mode_OUT(输出模式)
3. GPIO_Mode_AF(备用)
4. GPIO_Mode_AN(模拟)
5. GPIO_OType_PP(推挽输出)
6. GPIO_OType_OD(开漏输出)

此次主要以简单的IO输入输出为例,即:GPIO_Mode_IN和GPIO_Mode_OUT。

二、代码实例

1.输入模式
实际使用时,外接了一个NPN型的限位开关,用来配置后用来获取开关状态。

void SQ_GPIO_Config(void)
{
    GPIO_InitTypeDef GPIO_InitStructure;
    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE, ENABLE);  // 开启GPIO时钟
    GPIO_InitStructure.GPIO_Pin =GPIO_Pin_9;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;           //输入模式
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;           //上拉
    GPIO_Init(GPIOE, &GPIO_InitStructure);
}

读取状态

Stop_Up_Button_State=GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_9);  //读取状态

2.输出模式

实际使用时,外接了中间继电器。

void Motor_GPIO_Config(void)
{
    GPIO_InitTypeDef GPIO_InitStructure;
    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);   //开启时钟
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10 ;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;           //输出模式
    GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;          //推挽输出
    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN;          //下拉
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
    GPIO_Init(GPIOB, &GPIO_InitStructure);
 }

继电器断开

GPIO_ResetBits(GPIOB,GPIO_Pin_10);  

继电器闭合

GPIO_SetBits(GPIOB,GPIO_Pin_10); 

你可能感兴趣的:(STM32F407入门学习(1)---GPIO配置)