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;
        }
    }
  
}
相关推荐
串口哑火达人5 小时前
(六)RT-Thread网络通信--AT组件与ESP8266
c语言·单片机·嵌入式硬件·mcu·物联网
qq_411262426 小时前
把esp32-c2当单片机用,不用wifi,如何配置,节省更多内存
单片机·嵌入式硬件
kaikaile19958 小时前
农业物联网基于STM32的LoRa无线通信系统设计与实现
stm32·嵌入式硬件·物联网
wsoz11 小时前
MCU中部署TinyMaix
单片机·mcu·神经网络·嵌入式·tinymaix
香水5只用六神11 小时前
【RTOS快速入门】07_同步互斥与通信概述
单片机·嵌入式硬件·学习·操作系统·freertos·rtos·嵌入式软件
爱倒腾的老唐11 小时前
01、STM32-嵌入式系统
stm32·嵌入式硬件
码农三叔12 小时前
(6-4-02)IMU融合与机体状态估计:综合实战:腿式机器人的IMU关节融合与状态估计(2)
人工智能·嵌入式硬件·机器人·人机交互·人形机器人
qq_3975623112 小时前
RV1106的安装使用 + linux的编程运行
单片机·嵌入式硬件
良许Linux13 小时前
ASIC的设计和制造
单片机·嵌入式硬件·fpga开发·程序员·嵌入式·制造
雨洛lhw13 小时前
DMA技术
嵌入式硬件·dma