1.stm32(stdl)GPIO

一、GPIO简介

general purpose input output 通用输入输出口。有8种模式。

只要是通过高低电平进行的控制的电路,GPIO都可以使用。也可以模拟通信协议。

可以读取高低电压,数字输入。

二、stm32的GPIO结构

stm32的外设都挂载在APB2总线上,每个GPIO模块有16个引脚。

GPIO的模式介绍

三、在stm32中使用GPIO

流程:配置时钟线,打开需要使用的GPIO的时钟;对GPIO初始化;对GPIO进行读写操作。

1.配置时钟线

对于STM32的GPIO,都接在APB2时钟总线上,对其进行初始化。

RCC_APB2PeriphClockCmd()函数

参数一:要设置的GPIO类型

参数二:要设置的状态 开、关

2.GPIO初始化

标准库的初始化采用结构体的定义方式,对GPIO的模式、引脚、频率进行了规定。

GPIO_InitTypeDef

标准库规定的定义结构体类型

一般定义名称为:GPIO_InitStructure

GPIO的八大模式:

cpp 复制代码
    GPIO_Mode_AIN = 0x00,        // 模拟输入模式
    GPIO_Mode_IN_FLOATING = 0x04,// 浮空输入模式
    GPIO_Mode_IPD = 0x28,        // 下拉输入模式
    GPIO_Mode_IPU = 0x48,        // 上拉输入模式
    GPIO_Mode_Out_PP = 0x10,     // 推挽输出模式
    GPIO_Mode_Out_OD = 0x14,     // 开漏输出模式
    GPIO_Mode_AF_PP = 0x18,      // 复用推挽输出模式
    GPIO_Mode_AF_OD = 0x1C       // 复用开漏输出模式

GPIO_Init();

参数一:要操作的GPIO类型

参数二:定义的结构体,对GPIO的配置

3.GPIO的读写函数

四个函数功能为:将指定引脚设置为高电平, 将指定引脚设置为**低电平,**设置单个引脚为高 / 低电平,一次性设置整个 GPIO 端口的 16 个引脚电平。

四、示例代码

cpp 复制代码
int main()
{
    //LED流水灯
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//打开时钟
    
    //初始化GPIO
    GPIO_InitTypeDef GPIO_InitStructure;
    GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
    GPIO_InitStructure.GPIO_Pin=GPIO_Pin_All;
    GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
    GPIO_Init(GPIOA,&GPIO_InitStructure);

    while (1)
    {
        unsigned char i;
        for ( i = 0; i < 8; i++)
        {
            GPIO_Write(GPIOA,~(0x0001<<(i)));
            Delay_ms(500);
        }
        if (i==8)
        {
            i=0;
        }
    }
  
}
相关推荐
帅次4 小时前
系统分析师-信息物理系统分析与设计
stm32·单片机·嵌入式硬件·mcu·物联网·iot·rtdbs
澜莲Alice4 小时前
STM32 MPLAB X IDE 软件安装-玩转单片机-英文版沉浸式安装
stm32·单片机·嵌入式硬件
良许Linux4 小时前
IIC总线的硬件部分的两个关键点:开漏输出+上拉电阻
单片机·嵌入式硬件
✎ ﹏梦醒͜ღ҉繁华落℘5 小时前
单片机基础知识 -- ADC分辨率
单片机·嵌入式硬件
Q_21932764555 小时前
车灯控制与报警系统设计
人工智能·嵌入式硬件·无人机
雾削木6 小时前
树莓派部署 HomeAssistant 教程
stm32·单片机·嵌入式硬件
Q_21932764556 小时前
基于单片机的破壁机自动控制系统设计
单片机·嵌入式硬件
我是一棵无人问荆的小草6 小时前
stm32f103芯片多个IO配置成外部中断
stm32·单片机·嵌入式硬件
wjykp6 小时前
ESP32xxx烧录
stm32·单片机·嵌入式硬件
早起huo杯黑咖啡7 小时前
【NOR Flash】关于芯片的高耐久性分区的编程/擦除周期和最小保留时间的数据
单片机·嵌入式硬件