前些日子学习 STM32F10x 基本一些内容 ,由于需要,今天开始学习 STM32L15x 系列。 前面简单介绍过 STM32L15x 。下面具体介绍下GPIO GPIO_InitTypeDe f的事。
STM32L15x 系列中基本步骤是和STM32F10x相同的
一 配置GPIO
初始化GPIO时我们需要催一下内容进行配置(以下步骤没有必然顺序)
1 创建玩结构
GPIO_InitTypeDef GPIO_InitStructure;
2 使能需要端口时钟
/* Enable GPIOs clock */
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA | RCC_AHBPeriph_GPIOB |
RCC_AHBPeriph_GPIOC | RCC_AHBPeriph_GPIOD |
RCC_AHBPeriph_GPIOE | RCC_AHBPeriph_GPIOH, ENABLE);
3 配置 GPIO_InitStructure 结构体成员(不同之处在这里)
例:
/* Configure the GPIO_LED pins */
GPIO_InitStructure.GPIO_Pin = LD_GREEN_GPIO_PIN | LD_BLUE_GPIO_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
GPIO_Init(LD_GPIO_PORT, &GPIO_InitStructure);
GPIO_LOW(LD_GPIO_PORT, LD_GREEN_GPIO_PIN);
二 分析
首先看一下STM32L15x 的 GPIO_InitTypeDef 这个结构体
typedef struct
{
uint32_t GPIO_Pin; //对应管脚 GPIOx_Pinx0~15
GPIOMode_TypeDef GPIO_Mode; //所选管脚的模式:输入、输出、悬空、模拟
GPIOSpeed_TypeDef GPIO_Speed; //所选管脚的响应速率 400K/ 10M /20M/ 40M
GPIOOType_TypeDef GPIO_OType; //所选管脚的开漏、上/下拉
GPIOPuPd_TypeDef GPIO_PuPd; //所选管脚是否上/下拉
}GPIO_InitTypeDef;
每个结构体成员又是以枚举结构体(这是我的叫法……不知道是否准确啊 大家意会~嘿嘿)出现。
typedef enum
{
GPIO_Mode_IN = 0x00, /*!< GPIO Input Mode */
GPIO_Mode_OUT = 0x01, /*!< GPIO Output Mode */
GPIO_Mode_AF = 0x02, /*!< GPIO Alternate function Mode */
GPIO_Mode_AN = 0x03 /*!< GPIO Analog Mode */
}GPIOMode_TypeDef;
#define IS_GPIO_MODE(MODE) (((MODE) == GPIO_Mode_IN) || ((MODE) == GPIO_Mode_OUT) ((MODE) == GPIO_Mode_AF)|| ((MODE) == GPIO_Mode_AN))
typedef enum
{
GPIO_Speed_400KHz = 0x00, /*!< Very Low Speed */
GPIO_Speed_2MHz = 0x01, /*!< Low Speed */
GPIO_Speed_10MHz = 0x02, /*!< Medium Speed */
GPIO_Speed_40MHz = 0x03 /*!< High Speed */
}GPIOSpeed_TypeDef;
#define IS_GPIO_SPEED(SPEED) (((SPEED) == GPIO_Speed_400KHz) || ((SPEED) == GPIO_Speed_2MHz) ((SPEED) == GPIO_Speed_10MHz)|| ((SPEED) == GPIO_Speed_40MHz))
typedef enum
{ GPIO_OType_PP = 0x00,
GPIO_OType_OD = 0x01
}GPIOOType_TypeDef;
#define IS_GPIO_OTYPE(OTYPE) (((OTYPE) == GPIO_OType_PP) || ((OTYPE) == GPIO_OType_OD))
typedef enum
{ GPIO_PuPd_NOPULL = 0x00,
GPIO_PuPd_UP = 0x01,
GPIO_PuPd_DOWN = 0x02
}GPIOPuPd_TypeDef;
#define IS_GPIO_PUPD(PUPD) (((PUPD) == GPIO_PuPd_NOPULL) || ((PUPD) == GPIO_PuPd_UP) ((PUPD) == GPIO_PuPd_DOWN))
而 stm32f10x 就没有分那么多层次直接定义每种输入输出模式对应的值
typedef enum
{ GPIO_Mode_AIN = 0x0,
GPIO_Mode_IN_FLOATING = 0x04,
GPIO_Mode_IPD = 0x28,
GPIO_Mode_IPU = 0x48,
GPIO_Mode_Out_OD = 0x14,
GPIO_Mode_Out_PP = 0x10,
GPIO_Mode_AF_OD = 0x1C,
GPIO_Mode_AF_PP = 0x18
}GPIOMode_TypeDef;
这是因为 STM32L15x 在硬件的输出上也加上了上拉下拉的可选配置。这样做是为了使用更灵活。使用者可在需要上拉输出的时候直接配置GPIO而不必在外围电路增加元器件。
以上是我对STM32L15x GPIO的一点鄙见,还愿高手多多指点。感激不尽!!
分享到:
相关推荐
接着,从系统概览的角度分析,STM32L15x与STM32F10x系列在工作电压、引脚封装、最高工作频率、最大RAM和Flash容量、E²PROM容量、后备寄存器数量、Bootloader存储器保护、MPU(Memory Protection Unit)、存储器ECC...
STM32L15x系列是意法半导体(STMicroelectronics)推出的超低功耗微控制器,属于STM32家族中的L1系列。这个系列基于ARM Cortex-M3内核,设计用于能源效率至关重要的应用,如物联网设备、穿戴式产品、医疗设备和智能...
STM32L15X系列微控制器以其卓越的超低功耗特性、丰富的外设资源和灵活的工作模式,在物联网、便携式设备、工业自动化等领域具有广泛的应用前景。通过上述详细分析,我们可以看出STM32L15X不仅在硬件设计上考虑到了...
描述中提到,文档主要讲述了STM32L15x系列芯片的电源管理模块PWR和低功耗模式,这是STM32L15x系列芯片的重要组成部分。标签为综合文档,意味着文档内容全面,包含了多个相关的知识点。 1. 电源管理:STM32L15x系列...
STM32L15x系列具有高性能、低功耗的特点,集成了多种功能,包括模拟和数字外设,以满足广泛的系统设计需求。 本压缩包文件包含的是STM32L15x系列的培训资料,可能是用于帮助开发者理解和掌握这款微控制器的使用。...
STM32L15x代码是指针对该系列MCU编写的程序,主要涵盖了基本的硬件初始化和功能实现,如时钟配置和串口通信。 STM32L15x代码的核心部分包括以下几个方面: 1. **时钟设置**:STM32L15x芯片具有多种时钟源,包括HSI...
STM8L15X系列是意法半导体(STMicroelectronics)推出的一款超低功耗的8位微控制器,主要应用于需要高效能与节能特性的嵌入式系统设计。该系列库,即STM8L15X系列库,是ST官方为开发者提供的标准外设库(StdPeriph ...
STM32L15x系列微控制器的不同外设可以根据其功能需求来配置使用相应的时钟源,如RTC和LCD可以使用RTCCLK和LCDCLK。MCO引脚可以被用来输出时钟信号以供外部使用,这对于调试和系统测试非常有帮助。对于系统设计者来说...
STM8L15x系列是STMicroelectronics推出的一款超低功耗8位微控制器,它基于STM8S架构,特别适合于对电源效率有极高要求的应用。官方标准库工程是ST为开发者提供的一套完整的软件开发环境,包含了必要的驱动程序、示例...
STM32L15x系列芯片是...总之,STM32L15x系列芯片凭借其内置的Flash和数据EEPROM存储器,提供了丰富的功能和配置选项。无论是在需要高性能的应用中,还是在对功耗有严格要求的场合,该系列芯片都能够提供有效的支持。
STM32L15x 是一款基于 ARM Cortex-M3 处理器核心的 32 位微控制器,属于 STMicroelectronics 公司的 STM32 微控制器系列。该器件具有低功率 Consumption,高性能和高集成功能,是目前嵌入式系统设计中的一种流行选择...
在《低功耗系列芯片 STM32L15x_通用GPIO和外部中断EXTI.pdf》这一文档中,详细介绍了STM32L15x系列芯片中的通用输入/输出口(GPIO)以及外部中断EXTI的相关知识点。 首先,文档中提到STM32L15x系列芯片具备多达83个...
STM8L15x的GPIO接口提供了多个可配置的输入/输出引脚,这些引脚可以设置为输入或输出模式,并且可以具有不同的工作速度和驱动能力。在实验中,GPIO被用来控制LED灯的亮灭,同时读取按键的状态,实现了基本的交互功能...
STM8L15x系列是意法半导体(STMicroelectronics)推出的一款超低功耗8位微控制器,属于STM8S低压系列。该系列微控制器适用于需要高效能和极低能耗的应用,例如智能传感器、便携式设备和电池供电系统。在本文中,我们...
3. **电源管理**:STM32L15具备灵活的电源管理策略,允许用户根据应用需求选择不同的电源域和电压等级,进一步优化功耗。 4. **外设节能**:STM32L15的外设如ADC、UART、SPI等在空闲或不使用时可以独立关闭,减少...
总体而言,STM32L15x系列单片机中的模拟比较器提供了灵活的电压比较功能,能够满足各种对功耗和性能要求不同的应用场景。设计者可以根据实际需求,利用这些功能特性来开发出低功耗、高性能的嵌入式系统。
在STM8L15x系列中,GPIO(General Purpose Input/Output)通用输入/输出模块是其核心功能之一,它允许MCU与外部电路进行灵活的数据交换和控制。 GPIO是微控制器与外部世界交互的关键接口,它允许MCU控制和监测外部...
STM8L15x配备了32KB Flash程序存储器和256字节数据EEPROM,后者带有错误校正码(ECC)和读写保护功能。此外,还提供2KB RAM和灵活的读写保护模式。 ### DMA控制器 该系列MCU支持4通道DMA,覆盖ADC、SPI、I2C、...
STM8L15x系列是意法半导体...总之,STM8L15x系列是面向低功耗应用的优秀选择,配合其详尽的中文参考手册和强大的开发工具,无论是初学者还是经验丰富的工程师,都能有效地进行项目开发,实现高效节能的解决方案。
STM32L15x系列是STM32L系列中的一员,使用EnergyLite™超低功耗平台,是意法半导体(ST)推出的面向嵌入式领域的32位微控制器。本系列芯片在设计上注重低功耗,为便携式设备和需要长时间电池寿命的应用提供了理想...