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&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口的一端接地。
软件配置不能使用悬浮输入方式,这种方式电压可能会不稳定。

意法半导体推出全新紧凑型大功率双列直插式智能功率模块
笔记本的9大散热原理
奥地利微电子推全球首款内部集成嵌入式智能算法芯片AS3935
武直-10新型头盔显示器获取飞行、战斗状态信息效率提高
关于配电箱的内部结构解析
STM8单片机按键检测电路设计
通信
基于单片机和LabVIEW的温湿度监测系统设计
张卫:先进CMOS制造工艺的技术演进及自主发展思考
高通死磕,苹果在智能家居布局能否绝地反击
电力电容器电压等级选择
玻璃釉电容器的结构与特点
一种改进的无线传感器网络非测距定位算法
探析工业APP诸多要素的关系与内涵
详解快速控制原型RCP与硬件在环仿真HIL
风光互补系统在地质灾害中的应用
简道云免费版来袭,让无代码开发惠及更多组织
2020年第三季度小米成为国产手机市场销量冠军
立足整个信号链需求 意法半导体音频解决方案
揭秘EFR32第二代无线平台的省电妙招-Lean Watchdog定时器电路