STM32 控制一个LED亮灭 | 宏定义方法

STM32嵌入式LED控制详解

1、main.c

void main(void)
{    
      //PB2 led
  	  led(1);                     //点亮led
	  delay_ms(20);       
	  led(0);                     //熄灭led
	  delay_ms(2000);    

/********************************************************************/

        //寄存器操作GPIOB PB2方法	
	    GPIOB->BSRR = 0x04;                 //BSRR寄存器PB2置1, 在第3位写1, 0b100
	    delay_ms(20);
	    GPIOB->BSRR = 0x40000;              //BSRR寄存器PB2置0,在第18位写1, 0b0100 0000 0000 0000 0000 
	    delay_ms(2000);      

}
2、led.h
#ifndef __LED_H
#define __LED_H

//
#include "gpio.h"


//宏定义  三目运算符定义 led(1) PB2高电平,     led(0) PB2低电平
#define led(x) do{ x? \
	                     HAL_GPIO_WritePin(GPIOB, GPIO_PIN_2, 1): \
	                     HAL_GPIO_WritePin(GPIOB, GPIO_PIN_2, 0); \
                 } while(0)

//宏定义 PB2上的led翻转电平
#define led_toggle()  do{ HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_2);} while(0)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值