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;
        }
    }
  
}
相关推荐
421!8 小时前
GPIO工作原理以及核心
开发语言·单片机·嵌入式硬件·学习
cmpxr_13 小时前
【单片机】STM32的启动流程(Keil)
stm32·单片机·嵌入式硬件
广药门徒13 小时前
嵌入式常用通信协议速率对比及布线要点全解析
单片机·嵌入式硬件
cmpxr_14 小时前
【单片机】RAM和ROM
单片机·嵌入式硬件
信息安全专家16 小时前
sigmastar SSD222D编译问题总结2-dash问题
linux·嵌入式硬件·dash
yong999017 小时前
可自动调整的24V步进电机设计方案
单片机·嵌入式硬件
R6bandito_18 小时前
自实现FLASH读取函数中的隐式类型转换bug踩坑记录
c语言·开发语言·经验分享·stm32·单片机·mcu·bug
Bin Watson18 小时前
STM32 HRTIM 学习心得(3):SVPWM 输出
stm32·单片机·嵌入式硬件
perseverance5218 小时前
MCU串口实现串行flash编程器功能
单片机·flash编程
421!19 小时前
C 语言学习笔记——11(函数指针与指针函数)
c语言·开发语言·笔记·单片机·学习