1. 定义一个GPIO_InitTypeDef类型的结构体变量GPIO_InitStructure,用于配置GPIO端口的参数。
GPIO_InitTypeDef GPIO_InitStructure;
  1. 使能GPIOC、GPIOB和AFIO的时钟。
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO, ENABLE); //ʹÄÜPORTB,CʱÖÓºÍAFIOʱÖÓ
  1. 配置GPIO引脚复用功能,禁用SWD,使JTAG功能得以正常使用。
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE);//¿ªÆôSWD£¬Ê§ÄÜJTAG
  1. 配置GPIOC的引脚10、9、8、7、6为推挽输出模式,最大输出速率为50MHz。
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10|GPIO_Pin_9|GPIO_Pin_8|GPIO_Pin_7|GPIO_Pin_6;	   ///PORTC6~10¸´ÓÃÍÆÍìÊä³ö
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  1. 初始化GPIOC的配置参数。
GPIO_Init(GPIOC, &GPIO_InitStructure); //GPIOC	
  1. 将GPIOC的引脚10、9、8、7、6设置为高电平。
GPIO_SetBits(GPIOC,GPIO_Pin_10|GPIO_Pin_9|GPIO_Pin_8|GPIO_Pin_7|GPIO_Pin_6);
  1. 配置GPIOB的所有引脚为推挽输出模式,最大输出速率为50MHz。
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;	//  PORTBÍÆÍìÊä³ö
  1. 初始化GPIOB的配置参数。
GPIO_Init(GPIOB, &GPIO_InitStructure); //GPIOB
  1. 将GPIOB的所有引脚设置为高电平。
GPIO_SetBits(GPIOB,GPIO_Pin_All);
  1. 延时50毫秒。
delay_ms(50); // delay 50 ms

代码解释:

  • GPIO_InitTypeDef 结构体包含了GPIO引脚的各种配置参数,如引脚模式、速度、输出类型等。
  • RCC_APB2PeriphClockCmd 函数用来使能GPIO端口的时钟,没有时钟供电,GPIO端口无法正常工作。
  • GPIO_PinRemapConfig 函数用来配置GPIO引脚的复用功能,例如禁用SWD以使JTAG功能得以使用。
  • GPIO_Init 函数用来初始化GPIO端口的配置参数。
  • GPIO_SetBits 函数用来设置GPIO引脚的电平,高电平或低电平。
  • delay_ms 函数用来延时一段时间,确保GPIO配置生效。

注意:

  • 以上代码仅供参考,具体的GPIO配置参数需要根据您的硬件设计和功能需求进行调整。
  • 在使用GPIO端口之前,请确保您已经了解GPIO端口的特性和工作原理。

希望这份教程能够帮助您更好地理解STM32 GPIO初始化配置过程。

STM32 GPIO 初始化配置详解:代码步骤逐一解析

原文地址: https://www.cveoy.top/t/topic/m9Wq 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录