stm32 GPIO输入输出

GPIO 通用输入输出口

可配置为8种输入输出模式

输出模式下可控制端口输出高低电平,用以驱动LED,控制蜂鸣器,模拟通信协议输出时序等

输入模式下可读取端口的高低电平和电压,用于读取按键输入,外接模块电平信号输入,ADC电压采集,模拟通信协议接收数据

因为STM32是32位单片机,但端口只有16位,驱动器是增大驱动能力

 注意:来自片上外设是复用功能输出

开漏智能低电平有驱动能力,没有高电平,由外部高电平上拉电阻拉高至5V

 

开漏输出高电平为高阻态,高电平没有驱动能力

 复用开漏,推挽,引脚的控制权交给了片上外设

         

 

GPIO输入

 

如果PA0是上拉输入模式,引脚再悬空,PA0是高电平 

第二个可以允许引脚浮空,因为已经外置了

 

 

 蜂鸣器-GPIO_Mode_Out_PP

void beep()
{
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
	GPIO_InitTypeDef GPIO_InitTypeStruct;
	GPIO_InitTypeStruct.GPIO_Mode=GPIO_Mode_Out_PP;
	GPIO_InitTypeStruct.GPIO_Pin=GPIO_Pin_8; 
	GPIO_InitTypeStruct.GPIO_Speed=GPIO_Speed_50MHz;
	GPIO_Init(GPIOA,&GPIO_InitTypeStruct);
	
	GPIO_SetBits(GPIOA,GPIO_Pin_8);
	Delay(0x0FFFFF);
	GPIO_ResetBits( GPIOA, GPIO_Pin_8);
	Delay(0x0FFFFF);
}

光敏电阻-GPIO_Mode_IPD

void guangming()
{
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
	GPIO_InitTypeDef GPIO_InitTypeStruct;
	GPIO_InitTypeStruct.GPIO_Mode=GPIO_Mode_IPD;
	GPIO_InitTypeStruct.GPIO_Pin=GPIO_Pin_8; 
	GPIO_InitTypeStruct.GPIO_Speed=GPIO_Speed_50MHz;
	GPIO_Init(GPIOB,&GPIO_InitTypeStruct);
}

读取时:

GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_8)==1

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值