STM32 输入输出

GPIO初始化:

void LED_Init(void)

{ //LED灯的接口初始化

GPIO_InitTypeDef  GPIO_InitStructure; 

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC,ENABLE);       

    GPIO_InitStructure.GPIO_Pin = LED1 | LED2; //选择端口号(0~15或all)      (GPIO_Pin_0)                  

    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //选择IO接口工作方式       

    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //设置IO接口速度(2/10/50MHz)    

    GPIO_Init(LEDPORT, &GPIO_InitStructure);

}

(1)GPIO_Mode_AIN 模拟输入 

(2)GPIO_Mode_IN_FLOATING 浮空输入

(3)GPIO_Mode_IPD 下拉输入

(4)GPIO_Mode_IPU 上拉输入

(5)GPIO_Mode_Out_OD 开漏输出

(6)GPIO_Mode_Out_PP 推挽输出

(7)GPIO_Mode_AF_OD 复用开漏输出

(8)GPIO_Mode_AF_PP 复用推挽输出

IO操作函数:

方法一:

GPIO_WriteBit(LEDPORT,LED1,(BitAction)(1)); //LED1接口输出高电平1 端口号/引脚号/电平

方法二:

GPIO_SetBits(LEDPORT,LED1); //LED灯都为高电平(1)

GPIO_ResetBits(LEDPORT,LED1); //LED灯都为低电平(0)

方法三:

PBout(1)=1;\\输出高电平

PBout(1)=0;\\输出低电平

 

GPIO输入:

GPIO_ReadInputDataBit(KEYPORT,KEY1) //GPIO读取一位

PBin(1) //读取B端口第1位的值

PAin(0)//读取A端口第0位的值

 

if(!GPIO_ReadInputDataBit(KEYPORT,KEY1)){ //读按键接口的电平

// delay_ms(20); //延时去抖动

// if(!GPIO_ReadInputDataBit(KEYPORT,KEY1)){ //读按键接口的电平

// GPIO_WriteBit(LEDPORT,LED1,(BitAction)(1-GPIO_ReadOutputDataBit(LEDPORT,LED1))); //LED取反

// while(!GPIO_ReadInputDataBit(KEYPORT,KEY1)); //等待按键松开 

// }

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值