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

发布者:oplkjjj最新更新时间:2020-08-11 来源: elecfans关键字:STM8  单片机  按键检测电路 手机看文章 扫描二维码
随时随地手机看文章

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


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


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


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

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

//初始化只需要设置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&KEY1_PIN)//检测到有按键了,IO口电压会被拉低

{

delay_5ms();

if(KEY1_PORT-》IDR&KEY1_PIN)//仍然存在低电平

{

while(!(KEY1_PORT-》IDR&KEY1_PIN));//等待放开

returnKEY1;

}

}

return0;

}elseif(key==KEY2)

{

if(!(KEY2_PORT-》IDR&KEY2_PIN))//检测到有按键了

{

delay_5ms();

if(!(KEY2_PORT-》IDR&KEY2_PIN))//仍然存在低电平

{

while(KEY2_PORT-》IDR&KEY2_PIN);//等待放开

returnKEY2;

}

}

return0;

}

return0;

}


总结:

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

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


关键字:STM8  单片机  按键检测电路 引用地址:STM8单片机按键检测电路设计

上一篇:浅析STVD(COSMIC)定义变量及其位定义
下一篇:STM8AF5286汽车8位微控制器的开发方案

小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved