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;
        }
    }
  
}
相关推荐
G.E.M.小白17 分钟前
单片机/嵌入式超全基础面试题(CPU/MCU/寄存器/三极管/数码管/位操作)
单片机·嵌入式硬件
jianqiang.xue30 分钟前
ESP-IDF保姆级入门35|SDMMC高速SD卡全解:SDIO接口/4位高速模式/FATFS文件系统/热插拔检测/磨损均衡,掌握嵌入式大容量存储扩展
单片机·esp32
宣宣猪的小花园.1 小时前
【嵌入式】故障与降级:看门狗、保护机制和工程可靠性的底线
开发语言·人工智能·嵌入式硬件·机器学习
自小吃多1 小时前
PCB布线叠层与阻抗设计笔记
笔记·嵌入式硬件
yuehuaxin012 小时前
LP8728A/LP8728B 芯茂微|SOP8L 副边反馈 PWM,18‑30W 适配器恒功率补偿方案解析
嵌入式硬件·智能家居·适配器模式·智能硬件
万物智能信息科技2 小时前
RGB并行屏输出—【万物智能之开源鸿蒙OpenHarmony系统实战开发系列教程】
单片机·嵌入式硬件·华为·鸿蒙
新晨单片机设计2 小时前
S012A-基于STM32单片机光强检测系统【Proteus仿真+Keil程序+原理图】
stm32·单片机·嵌入式硬件
盛世宏博智慧档案2 小时前
以太网温湿度传感器 TCP/IP、UDP、SNMP 协议怎么选?区别详细分析
单片机·tcp/ip·udp·以太网温湿度传感器
辰域电子3 小时前
STM32项目开源:电子秤计价系统(代码+原理图+仿真)
stm32·单片机·嵌入式硬件·开源·毕业设计·proteus
ysu_03143 小时前
基于 STM32 与 TinyML 的端侧手势识别系统
stm32·单片机·嵌入式硬件·mcu