历史上的今天
返回首页

历史上的今天

今天是:2025年08月11日(星期一)

正在发生

2020年08月11日 | STM8单片机按键检测电路设计

2020-08-11 来源:elecfans

硬件环境采用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口的一端接地。

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


推荐阅读

史海拾趣

CQR SECURITY公司的发展小趣事

在激烈的市场竞争中,CQR SECURITY公司不断探索创新服务模式。公司推出了基于云计算的安全服务平台,为客户提供更加便捷、高效的安全服务。同时,CQR还加强了对客户需求的深入了解,量身定制安全解决方案,满足客户的个性化需求。这种创新服务模式不仅提升了客户满意度,还为CQR带来了更多的商业机会。

Applied Micro Circuits (MACOM)公司的发展小趣事

在某一时期,MACOM宣布收购Applied Micro Circuits Corp.,这一举动标志着公司在业务领域上的又一次重要扩张。收购完成后,MACOM迅速进行了业务分拆,将不感兴趣的服务器芯片业务与自身的主营业务进行剥离。这一战略调整使得MACOM能够更专注于自身擅长的领域,同时也为被剥离的业务提供了更好的发展机会。

ABLIC公司的发展小趣事

2020年4月,ABLIC成为MinebeaMitsumi集团的一员。这一合作对于ABLIC来说具有重要意义。MinebeaMitsumi集团作为一家在电子元器件领域具有强大实力的企业,为ABLIC提供了更广阔的发展空间和资源支持。通过融入MinebeaMitsumi集团的“八矛战略”,ABLIC的模拟半导体业务得到了进一步提升,其在集团内部的地位也愈发重要。

东软载波(EastSoft)公司的发展小趣事

凭借卓越的产品性能和技术实力,东软载波获得了多项荣誉和认证。公司被评为“国家绿色工厂”,多款产品通过国内外权威认证。同时,公司还荣获了多项行业奖项和荣誉称号,如“2022 PLC互联互通·基石奖”、“2022年山东民营企业新一代信息技术行业领军10强”等。这些荣誉的获得充分证明了东软载波在电子行业中的领先地位和实力。

Amaze Electronics Pte Ltd公司的发展小趣事

随着业务的不断发展,Amaze Electronics意识到国际市场的巨大潜力。于是,公司积极寻求与国际知名电子企业的合作,共同开发新产品。通过与这些企业的深度合作,Amaze Electronics不仅获得了先进的技术支持,还成功将产品打入国际市场,实现了业务的快速拓展。

Analog公司的发展小趣事

在电子行业的快速发展中,Amaze Electronics Pte Ltd以其前瞻性的技术创新赢得了市场的认可。公司投入大量研发资源,成功开发出了一款高效能、低能耗的智能手机芯片。这款芯片不仅大幅提升了手机的运行速度,还显著降低了能耗,为用户带来了更流畅的使用体验。凭借这一技术创新,Amaze Electronics迅速在市场上脱颖而出,赢得了众多手机制造商的合作意向。

问答坊 | AI 解惑

数字电路学习教程

不错的数字电路学习教程…

查看全部问答>

关于ucosii在stm32上的移植

关于这个移植到问题好像pm了版主好多次,于是我决定还是发帖一记吧,谢谢之前daichen版主的帮助的。但还有问题。 移植完毕后,在测试OSStartHighRdy函数是否成功时,出现很多警告信息: 1)单步调试进入OS_CORE.C中的指令ptcb = OSTCBFreeList;&n ...…

查看全部问答>

IT 学生解惑真经

不知这个可以发在这不?不行的话麻烦斑竹移动一下,呵呵 在校的 IT 学生有几百万 都在为如何如何学习才能找到工作、融入社会而迷 惑 我们需要的不是灵丹妙药 而是一本让你少走几年弯路的 IT 学生解惑真经 这是一部写给在校计算机专业学生 ...…

查看全部问答>

nios2手把手的入门资料

希望感兴趣的朋友下载资料后,看了过后,有任何疑问提出来大家讨论!…

查看全部问答>

学习单片机的一点心得体会

很多朋友都在学习单片机或是想学单片机,但在看了一些资料后,要么感到不知道学的什么,要么找不到下一步的学习方法,这都很正常,因为单片机的学习是一项综全性知识的结果。那么怎样学习单片机,怎么样学好单片机是我们关心的,通过我本人的学习过 ...…

查看全部问答>

wince开发用C++还是C#好

不熟悉C++ 想用C# 可是发现网上的例子教程都是C++的 一看就头疼 还有如何学习开发UI呢…

查看全部问答>

关于wince编写驱动程序

我写的一个驱动程序,是一个流驱动,其他没什么问题,就驱动入口函数上提示被重复加载,奇怪了,麻烦大家帮忙解决一下。感激! error C2731: \'DllMain\' : function cannot be overloaded DllMain就是驱动的入口函数。…

查看全部问答>

大侠帮忙:EBOOT问题

当EBOOT正常时, 部分显示信息如下: Download BIN file information: ----------------------------------------------------- [0]: Base Address=0x80038000  Length=0x19f40 ------------------------------------------------ ...…

查看全部问答>

stm32需不需要专用的复位芯片?

stm32需不需要专用的复位芯片? 以前的LPC213X系列都需要接一些cat1025之类的复位芯片好复杂的样子。…

查看全部问答>

急急急!!!关于2812的中断!在线等!

楼主说2812允许中断嵌套,是不是可以这样理解: 比如说,程序正在执行EVA的周期中断ISR,而CPU定时器的周期中断时间到了,就会先去跳转 执行CPU的ISR,执行完再回来执行EVA的ISR。 问题: 而我在上述两个中断都打开的情况下,单步调试,在EVA中 ...…

查看全部问答>