STM8单片机按键检测电路设计

STM8单片机按键检测电路设计

硬件环境采用STM8SF103,电压为3.3V。

电路需要注意的是STM8SF103这系列的IO作为输入口时只能是上拉输入和悬浮输入,虽然是弱上拉,在VCC为3.3V电压时,仍然能够被拉升至3.0V左右。

所以按键检测电路IO口一端需要接地,而不是外接上拉。悬浮方式下IO仍然会有0.89V左右电压,读取对应的IO寄存器IDR,仍然处于逻辑高电平状态。

软件代码相对很简单,只需要将IO口设置成上拉输入即可。采用轮询代码如下: //初始化只需要设置IO口模式即可。

GPIO_Init(KEY2_PORT,KEY2_PIN,GPIO_MODE_IN_PU_NO_IT);//上拉输入,不产生中断 //按键检测部分 /*

#defineKEY10

#defineKEY1_PORT(GPIOD) #defineKEY1_PIN(GPIO_PIN_4) #defineKEY21

#defineKEY2_PORT(GPIOC) #defineKEY2_PIN(GPIO_PIN_1) */

u8CheckKey(u8key) {

if(key==KEY1) {

if(KEY1_PORT-》IDR\delay_5ms();

if(KEY1_PORT-》IDR\

while(!(KEY1_PORT-》IDR//等待放开 returnKEY1; } } return0;

}elseif(key==KEY2) {

if(!(KEY2_PORT-》IDR\delay_5ms();

if(!(KEY2_PORT-》IDR\while(KEY2_PORT-》IDR//等待放开 returnKEY2; } } return0; } return0; } 总结:

硬件电路将按键IO口的一端接地。

软件配置不能使用悬浮输入方式,这种方式电压可能会不稳定。

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4