STM32上电以后GPIO默认是Floating input

真实案例1:

用开发板STM32的PD13来测试,直接裸露的管脚。

硬件连接我手上发光二极管的比较长的一端也就是 + 极,开发板找GND连接二极管较短的一端也就是 - 极。

#define TSBUZGPIO               GPIOD
#define TSBUZGPIOPIN            GPIO_Pin_13
#define TS_BUZ_H()         		GPIO_SetBits(TSBUZGPIO ,TSBUZGPIOPIN)
#define TS_BUZ_L()	       		GPIO_ResetBits(TSBUZGPIO ,TSBUZGPIOPIN) 

void TS_Buz_Init(void)
{
    GPIO_InitTypeDef GPIO_InitStructure;
    RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOD,ENABLE );
    GPIO_InitStructure.GPIO_Pin = TSBUZGPIOPIN ;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;                       
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(TSBUZGPIO, &GPIO_InitStructure);
    //TS_BUZ_H() ;
}

结论:上电复位以后是低电平!

因为灯没有亮起。主动拉高电平灯TS_BUZ_H() 才会亮。

 

参考:

https://mp.weixin.qq.com/s?__biz=MzI4MTEyNDU1MA==&mid=2651182997&idx=2&sn=e590a414cb58a866725568d9a6f2363d&chksm=f05f7c3cc728f52ada3638b0029aeee27f0056697f4ebf5c8143a76fd4e159d560d10b66ad82&mpshare=1&scene=23&srcid=0606xGDohBQapCa0IS9Ew64h#rd

 

 

 

 

真实案例2:

这里有个TF_DET  对应的是PC6

原理图是:没有插卡--高电平            插卡以后--低电平

init 81行
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;	//PC6---PD7 上拉输入
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; 		 //复用推挽输出
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;		 //IO口速度为50MHz
  GPIO_Init(GPIOC, &GPIO_InitStructure);					 //根据设定参数初始化PD7

检测就是

u8 Read_THDET_PIN()
{
	return GPIO_ReadInputDataBit(GPIOC ,GPIO_Pin_6);
}

把这个函数放到循环中 周期读一读就知道了 有卡是0  没卡是1

 u8 tset =    Read_THDET_PIN();

 

上电以后就是高电平!因为它外接的3.3v

 

结论:上电是浮空的,一般是低电平,除非你外面自己接电了才是高电平。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值