历史上的今天
今天是:2024年09月04日(星期三)
2020年09月04日 | STM8单片机——按键检测电路设计
2020-09-04 来源:eefocus
硬件环境采用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口的一端接地。软件配置不能使用悬浮输入方式,这种方式电压可能会不稳定。
史海拾趣
|
Android编译环境(1) - 编译Native C的helloworld模块 ZT Android编译环境本身比较复杂,且不像普通的编译环境:只有顶层目录下才有Makefile文件,而其他的每个component都使用统一标准的Android.mk. Android.mk文件本身是比较简单的,不过它并不是我们熟悉的Makefile,而是经过了Android自身编译系统的很 ...… 查看全部问答> |
|
你的能力并不能确保你的安全 很多公司在招聘员工或对外宣传时说我们公司注重员工的能力,提倡员工能发挥自己的主观能动性 (确实有一些公司是提倡创新的,但是极少数,大部分都只是打打口号而已)。对于刚入职的员工来说可能都会有一种心理,那就 ...… 查看全部问答> |
|
要做个充电器,不知道与充电芯片相连的元件的参数.还有接口要接MICROUSB,有四条线,地线、读数据线、写数据线、+5V线 ,就直接把OUT接在5V线上就可以了贝? … 查看全部问答> |
|
比如在IE中点击一个avi文件的链接,自动就会启动mediaplayer来播放,如果点击一个bt文件的链接,自动就会启动bt程序来下载,这个过程如何实现?需要用到哪些技术?请高手指点 … 查看全部问答> |
|
初学嵌入式软件开发,不知道该从那些方面入手,有经验的可否提供一些建议? 我是学软件工程的,专业方向选的是嵌入式方向,现在课程比较少 我想先找点书看,可不知道该看什么样的书,大家可否给点意见?… 查看全部问答> |
|
感创ZT2000自动借还书设备是通过与图书馆自动化系统数据相连接,由读者自行借还馆内图书资料;帮助图书馆在有限的人力资源条件下,增进图书流通速率、简化借还流程,进而提高图书馆从业人员工作效率及服务品质的一种自助设备。 该自助借还书设备 ...… 查看全部问答> |
|
传索尼最早将在今年年底前全球裁员1万人,约占雇员总数的6%。这家公司一直是日系企业的中间代表,大家知道日系企业的一大特点就是不到万不得已是尽量不裁员,号召企业与员工共同成长,这比中国的国企还国企。究竟日本电子企业出什么问题了,本人不 ...… 查看全部问答> |




