stm32笔记:GPIO的的配置和操作(1)推挽输出方式

封装端口输出高低电平控制LED显示:

以下方式便于修改。

LED.h

#ifndef __LED_H
#define	__LED_H

#include "stm32f10x.h"
#define GPIO_PIN_LED1  GPIO_Pin_3  //PC.3
#define GPIO_PIN_LED2  GPIO_pin_4  //PC.4
#define GPIO_PIN_LED3  GPIO_pin_5  //PB.5
#define GPIO_LED      GPIOC

#define GPIO_PIN_LED_ALL  GPIO_PIN_LED1\
        |GPIO_PIN_LED2|GPIO_PIN_LED3

#define RCC_LED      RCC_APB2Periph_GPIOC //时钟配置
                       
#define ON  0   
#define OFF 1

#define LED1(a)	if (a)	\
					GPIO_SetBits(GPIO_LED1,GPIO_PIN_LED1);\
					else		\
					GPIO_ResetBits(GPIO_LED1,GPIO_PIN_LED1)

#define LED2(a)	if (a)	\
					GPIO_SetBits(GPIO_LED2,GPIO_PIN_LED2);\
					else		\
					GPIO_ResetBits(GPIO_LED2,GPIO_PIN_LED2)

#define LED3(a)	if (a)	\
					GPIO_SetBits(GPIO_LED3,GPIO_PIN_LED3);\
					else		\
					GPIO_ResetBits(GPIO_LED3,GPIO_PIN_LED3)

void LED_GPIO_Config(void);

#endif /* __LED_H */
LED.C
#include "led.h"

/*
 * 函数名:LED_GPIO_Config
 * 描述  :配置LED用到的I/O口
 * 输入  :无
 * 输出  :无
 */
void LED_GPIO_Config(void)
{
	  GPIO_InitTypeDef GPIO_InitStructure;
	  RCC_APB2PeriphClockCmd( RCC_LED, ENABLE);

  	GPIO_InitStructure.GPIO_Pin = GPIO_PIN_LED_ALL;	
  	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;       
  	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  	GPIO_Init(GPIO_LED, &GPIO_InitStructure);
}




转载于:https://my.oschina.net/390871020/blog/657735

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值