STM32 GPIO_SetBits 和 GPIO_ResetBits 的使用(附详细代码 = 引脚底层配置 + LED流水灯示例代码)

介绍:

  • STM32F103ZET6
  • 实现功能:控制某个GPIO引脚的输出电平(拉高 / 拉低)
  • GPIO_SetBits   拉高引脚输出电平
  • GPIO_ResetBits 拉低引脚输出电平

引脚底层配置:

  • 输入类型:推挽输出
  • 引脚底层配置代码:
    
    /*引脚底层配置函数*/ 
    void LED_IO_Configration(void)
    {
    	GPIO_InitTypeDef  GPIO_InitStructure;
    		
    	/*使能 APB2 - PE 端口时钟*/ 
    	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE, ENABLE);	   
    
    	/*PE12引脚配置*/	
    	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;	  			// 引脚 PE12
    	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;		// 推挽输出
    	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;		// IO口速度为50MHz
    	GPIO_Init(GPIOE, &GPIO_InitStructure);	  			 	
    }
    
    

GPIO输出电平控制函数:

  • 代码:
    
    GPIO_SetBits(GPIOE, GPIO_Pin_12);					// PE12 输出高电平
    
    GPIO_ResetBits(GPIOE, GPIO_Pin_12);					// PE12 输出低电平
    
    

LED流水灯示例:

  • led.h  宏定义:

    
    typedef enum 
    {
    	OFF = 0, 
    	ON = !OFF
    }LEDState;
    
    #define LED(EN)		(EN) ? (GPIO_SetBits(GPIOE, GPIO_Pin_12)) : (GPIO_ResetBits(GPIOE, GPIO_Pin_12))
    
    
  • led.c

    
    #include "stm32f10x.h"
    #include "delay.h"
    #include "led.h"
    
    int main(void)
    {
    	SystemInit();
    	delay_init();
    	
    	/*引脚底层配置函数*/ 
    	LED_IO_Configration();
    
    	while(1)
    	{
    		/*控制 LED 亮 500ms*/
    		LED(ON);
    		delay_ms(500);		
    		
    		/*控制 LED 灭 500ms*/
    		LED(OFF);
    		delay_ms(500);
    	}
    }
    
    
欢迎纠正,(づ ̄3 ̄)づ╭❤~

如果此文能帮助到素未谋面的你,那真是太开心了喵~( * Φ ω Φ * )

  • 91
    点赞
  • 260
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 15
    评论
GPIO_ResetBitsGPIO_SetBitsSTM32库中的两个函数,用于控制GPIO引脚的电平状态。这两个函数的作用是将指定的GPIO引脚的电平设置为低电平或高电平。 GPIO_ResetBits函数用于将指定的GPIO引脚的电平设置为低电平,即将引脚的电压拉低。而GPIO_SetBits函数则用于将指定的GPIO引脚的电平设置为高电平,即将引脚的电压拉高。 在引用\[1\]和引用\[3\]中的代码中,可以看到这两个函数的使用。例如,在引用\[1\]中的宏定义中,LED宏根据传入的参数来选择调用GPIO_SetBitsGPIO_ResetBits函数,从而控制LED的亮灭状态。 总结起来,GPIO_ResetBits函数用于将GPIO引脚的电平设置为低电平,而GPIO_SetBits函数用于将GPIO引脚的电平设置为高电平。这两个函数在控制STM32GPIO引脚时非常常用。\[1\]\[3\] #### 引用[.reference_title] - *1* [STM32 GPIO_SetBitsGPIO_ResetBits使用详细代码 = 引脚底层配置 + LED流水灯示例代码)](https://blog.csdn.net/wenjie2017/article/details/121407638)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [【库函数】简要举例STM32GPIO进行SetBitsResetBits](https://blog.csdn.net/teavamc/article/details/77221700)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力的小肥丸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值