首页 > 其他分享 >STM32中,对GPIO_Init(GPIOB, &GPIO_InitStructure)的理解

STM32中,对GPIO_Init(GPIOB, &GPIO_InitStructure)的理解

时间:2023-04-06 18:48:27浏览次数:50  
标签:STM32 GPIOB Init InitStructure InitTypeDef GPIO 外设

//笔者使用的硬件平台为STM32F103ZET6战舰版
GPIO_InitTypeDef GPIO_InitStructure;

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //指定GPIO - 端口配置PB5 -> LED0
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //指定模式 - 推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //指定速度 - IO口速度为50MHz
GPIO_Init(GPIOB, &GPIO_GPIO_InitStructure); //由设定的参数初始化GPIOB.5

 

typedef struct
{
uint16_t GPIO_Pin; //指定要初始化的IO口
GPIOSpeed_TypeDef GPIO_Speed; //设置IO口输出速度
GPIOMode_TypeDef GPIO_Mode; //设置工作模式:8种中的一个
}GPIO_InitTypeDef;

 

,参数1”GPIOB“很好理解,就是GPIO的外设口B(也可以是A,C,D,E),第二个参数有点不理解,于是查看了下库函数手册,该函数原型是这样的:

void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct)

功能描述:     根据GPIO_InitStruct中指定的参数初始化外设GPIOx寄存器

输入参数1:   GPIOx:x可以是A,B,C,D或者E,来选择GPIO外设

输入参数2:   GPIO_InitStruct:指向结构GPIO_InitTypeDef的指针,包含了外设GPIO的配置信息

标签:STM32,GPIOB,Init,InitStructure,InitTypeDef,GPIO,外设
From: https://www.cnblogs.com/fengzhihean/p/17293751.html

相关文章

  • stm32的学习笔记1
    一目录结构管理  Libraries是放官方固件库的MDK-ARM是放产生的文件的,工程存放的目录USERS是放自己写的代码的然后是一个解释文件README在MDK-ARM目录里还要创建两个文件夹,分别是Listings和Objects二系统架构  在三个小方块处添加系统架构,StdPeriph-Driver是一些......
  • 操纵GPIO
    开启外设时钟使用复位和时钟控制RCC驱动程序(stm32f10x_rcc.c)有3个针对不同总线连接的外设时钟命令函数•RCC_AHBPeriphClockCmd•RCC_APB1PeriphClockCmd•RCC_APB2PeriphClockCmdGPIO通过APB2总线连接系统开启GPIO外设时钟的函数RCC_APB2PeriphClockCmd 如:开启GPIOA外......
  • stm32-----01初识GPIO
    GPIO_Init(GPIO_TypeDef*GPIOx,GPIO_InitTypeDef*GPIO_InitStruct)  -----使用结构体的参数来初始化GPIO口,一般初始化外设都用这个函数完成先定义一个结构体变量给结构体赋值调用这个函数  GPIO的4个写入函数GPIO_SetBits(GPIO_TypeDef*GPIOx,uint16_tGP......
  • GPIO原理与寄存器
    GPIO的工作方式输入浮空输入模式输出缓冲器被禁止,施密特触发输入被激活,不接上拉和下拉电阻,出现在I/O脚上的数据在每个APB2时钟被采样到输入数据寄存器。 上拉输入模式输出缓冲器被禁止,施密特触发输入被激活,上拉电阻接通,不接下拉电阻,当I/O引脚无输入信号时,读取到的数据为1,......
  • stm32f407探索者开发板(十)——时钟系统精讲
    文章目录一、为什么时钟会这么复杂(相对于51单片机)二、F4时钟树2.1.STM325个时钟源:HSI、HSE、LSI、LSE、PLL。2.2系统时钟SYSCLK可来源于三个时钟源:2.3STM32F4时钟信号输出MCO1(PA8)和MCO2(PC9)。三、RCC相关寄存器四、RCC相关头文件和固件库源文件4.1时钟使能配置4.2时......
  • stm32f407探索者开发板(十三)——JLINK在线调试_软件调试_方法与技巧
    文章目录一、JTAG/SWD调试原理1.1调试原理简析二、在实验中讲解调试方法2.1调试之前的配置2.2调试一、JTAG/SWD调试原理1.1调试原理简析STM32F4xx的内核是CortexTM-M4F,该内核包含用于高级调试功能的硬件。利用这些调试功能,可以在取指(指令断点)或取访问数据(数据断点)时停止内......
  • 读取和修改GPIO配置参数的ADB命令
    1、读取每个GPIO的参数adbshellcat/sys/devices/virtual/misc/mtgpio/pin打印出来的参数从左到右分别是Pin:modepullseldindoutpullendirdinv(inversion) 2、修改GPIO的参数adbshellecho-w=[pin]:[mode][pullsel][din][dout][pull......
  • Android与STM32通信中巧妙解决中文乱码问题
    前言网上一大堆都是要多种格式相互转换,并且要很大的字库文件,对于小应用工程,小容量的STM32芯片,额外多出这些开销会感到蛮不舒服的,而且绝大部分的乱码问题时发生在STM32这边,所以本文是从Android端解决编码格式转化的问题,STM32那边稍做处理即可,我做的转换是从UTF-8转到GBK解决方案......
  • STM32 FSMC的 NOR FLASH B模式模拟LCD 8080时序
    STM32 FSMC:FSMC(FlexibleStaticMemoryController):翻译为:灵活的静态存储管理器。可管理的存储类型包括:NORFLASH 和 SRAMNANDFLASHPC Card(PC卡,不知道是什么东西)具体功能是将外部的存储设备映射为内部地址,可以用程序访问这些地址,间接地,由FSMC 自动产生相应时序,......
  • 野火书籍《STM32库开发指南》 第26章LCD代码勘误
     第26章LCD代码,P303代码写错。原来的代码写错,因为是D/CX引脚,高电平(1)意味着数据,低电平(0)意味着命令:#defineFSMC_Addr_ILI9341_CMD((uint32_t))0x60020000#defineFSMC_Addr_ILI9341_DATA((uint32_t))0x60000000因此应该将两个宏定义对换。正确的为:#defineFS......