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;
        }
    }
  
}
相关推荐
FreakStudio2 小时前
亲测可用!可本地部署的 MicroPython 开源仿真器
python·单片机·嵌入式·面向对象·并行计算·电子diy·电子计算机
rit84324994 小时前
STM32 + DS3231 + TM1640 实时时钟数码管显示系统
stm32·单片机·嵌入式硬件
小懒懒️4 小时前
嵌入式常见通信协议学习——UART
stm32·uart·通信协议
zjxtxdy5 小时前
STM32开发
stm32·单片机·fpga开发
BT-BOX5 小时前
STM32简易数字电流表仿真_LCD1602显示
stm32·电流测量·lcd1602显示·电流表
集和诚JHCTECH5 小时前
BRAV-7120加持,让有毒有害气体无处遁形
大数据·人工智能·嵌入式硬件
LCG元5 小时前
STM32实战:基于STM32F103的I2C通信(AT24Cxx EEPROM读写)
stm32·单片机·嵌入式硬件
徐某人..5 小时前
基于i.MX6ULL平台的智能网关系统开发
arm开发·c++·单片机·qt·物联网·学习·arm
星恒讯工业路由器8 小时前
MCU+WiFi与CPU+WiFi模块区别
单片机·嵌入式硬件
LCMICRO-133108477468 小时前
长芯微LD7940完全P2P替代AD7940,是一款14位、逐次逼近型模数转换器(ADC)
单片机·嵌入式硬件·fpga开发·硬件工程·dsp开发·模数转换器adc