STM32 GPIO简单使用

STM32 GPIO简单使用

IO初使化配置

   GPIO_Init()
     {
        GPIO_InitTypeDef GPIO_InitStructure; 				  //定义GPIO初始化结构体
		RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB |RCC_APB2Periph_GPIOC, ENABLE); //使能GPIOB ,GPIOC 时钟
		GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 |GPIO_Pin_6;		      //设置对应引脚
		GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;      //设置推挽输出
		GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;     //工作速度50MHz
		GPIO_Init(GPIOB, &GPIO_InitStructure);			      //PB5 PB6设置生效
	   
	    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;		      //设置对应引脚
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;     //浮空输入	
        GPIO_Init(GPIOC, &GPIO_InitStructure);			      //PC8设置生效

	 }	

GPIO配置模式

      GPIO_Mode_AIN = 0x0,  //模拟输入
	  GPIO_Mode_IN_FLOATING = 0x04,  //浮空输入
	  GPIO_Mode_IPD = 0x28,   //下拉输入
	  GPIO_Mode_IPU = 0x48,   //上拉输入
	  GPIO_Mode_Out_OD = 0x14,//开漏输出 
	  GPIO_Mode_Out_PP = 0x10, //推挽输出
	  GPIO_Mode_AF_OD = 0x1C, //复用开漏输出
	  GPIO_Mode_AF_PP = 0x18  //复用推挽输出

IO使用

1、输出设置

	GPIO_SetBits(GPIOB, GPIO_Pin_5);    //PB5置1
	GPIO_ResetBits(GPIOB, GPIO_Pin_6);   //PB6置0

2、输入引脚读取

 GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_8)//读取PC8 返回0 1

可以在.h头文件中定义宏简化应用

#define  PC8  GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_8)

应用时直接用PC8

if(1 == PC8)
{
 .....
}
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值