历史上的今天
返回首页

历史上的今天

今天是:2025年01月09日(星期四)

正在发生

2019年01月09日 | STM32入门开发--按键模块实现按键点灯

2019-01-09 来源:eefocus

1、实现效果

通过I/O口,操作按键,使得按键与LED一一对应,实现按键按下灯亮,再按下灯灭。支持连续按键。


2、实现思路

a. 要实现灯亮,首先应该初始化LED模块的时钟,使得该端口的时钟使能。

b. 初始化按键,按键对应的端口PORTA,PORTE使能,其次设置为输入模式,

KEY0,KEY1为低电平有效,KEY_UP高电平有效



硬件图可知,在设计中,应该在内部设置为上拉下拉输入,即KEY0,KEY1为上拉(输入高电平,本身为低电平有效),KEY_UP为下拉(输入低电平,本身为高电平有效)。



根据模式配置图,即要设置GOIPx—ODR寄存器的3/4位为1,才能保证为上拉输入。


c. 实现相应的初始化之后,循环检测是否有按键按下,KEY0,KEY1为0(低电平有效)则代表按键按下,KEY_UP为1(高 电平有效)代表按下。


3、key.c参考代码如下:


#include "key.h"

 

void delay_lx(unsigned int num)

{

 

unsigned int i = 0,j = 0;

for (;i

{

for (;j<1800;++j)

;

}

 

}

void key_init(void)

{

RCC->APB2ENR |= 1<<6; // 使能PORTE

RCC->APB2ENR |= 1<<2; // 使能PORTA

GPIOA->CRL &= 0XFFFFFFF0; // 设置为输入模式

GPIOA->CRL |= 0X00000008; // 10--上拉/下拉输入 00--输入模式

GPIOE->CRL &= 0XFFFF00FF;

GPIOE->CRL |= 0X00008800;

GPIOE->ODR |= 3<<3;// 3/4上拉有效

}

unsigned int key_scan(unsigned int mode)

{

static unsigned int key_up = 1; // 按键按下标志

if(mode)

key_up = 1;

if (key_up&&(KEY0==0||KEY1==0||WK_UP==1))

{

delay_lx(2000);

key_up = 0;

  if (KEY0 == 0)

return 1;

else if (KEY1 == 0)

return 2;

else if (WK_UP == 1)

return 3;

}

else if (KEY0==1&&KEY1==1&&WK_UP==0)

key_up = 1;

return 0;

}


推荐阅读

史海拾趣

台湾三礼(3L)公司的发展小趣事

在技术创新方面,三礼公司一直保持着领先地位。2009年,公司成功完成了UPI、DPI压模型电感量产布线及自制粉料能力,并获得了Texas Instrument认证。同时,公司重新发布了愿景并重新定义了3L,将持续改善、精益生产、以客为尊作为公司的三个核心L。随后,公司成立了精实中心,进一步推进精益生产的自动化配置,实现了生产效率的大幅提升和不良品及库存的减少。

风华(FH)公司的发展小趣事

随着光伏胶膜业务的快速发展,福斯特面临着仓库管理和存储的巨大挑战。光伏胶膜成品体积大、重量重,传统人工作业方式效率低下且劳动强度大。为了应对这一挑战,福斯特引入了智能仓储系统,与亨通智能合作打造自动化立库系统。该系统通过堆垛机、RGV、缠绕膜等设备的配合使用,实现了库内产品的全面自动化搬运、存储与管理。这不仅大大提高了仓库的运营管理效率,还确保了产品的先进先出和库存盘点的准确性。这一智能化改造不仅提升了福斯特自身的竞争力,也为整个光伏行业的数字化转型树立了标杆。

Gemmy Electronics Co Ltd公司的发展小趣事
电子捕鼠器首先通过电源电路将家用交流电(如220V)转换为适合捕鼠器工作的低压直流电(如6V)。
Advanced Microelectronic Products Inc公司的发展小趣事

在电子行业竞争日益激烈的背景下,AMP公司面临着来自同行的巨大压力。为了应对这一挑战,公司进行了战略调整,将重心转向高端电子产品的研发和生产。通过不断提升产品性能和品质,AMP公司成功打造了多个高端品牌,并在细分市场中取得了显著优势。此外,公司还积极拓展新的应用领域,为未来发展奠定了坚实基础。

Global Specialties公司的发展小趣事

Global Specialties的创立源于对高质量测试与测量产品的追求。在公司成立初期,创始人便明确了公司的核心定位:为工程师、学生和业余爱好者提供可靠的测试与测量工具。他们首先推出了一系列电源、十进位箱和电子培训仪,这些产品迅速在行业内获得认可。凭借对产品质量的不懈追求,Global Specialties逐渐在竞争激烈的市场中站稳了脚跟。

DUCATI公司的发展小趣事

Global Specialties的创立源于对高质量测试与测量产品的追求。在公司成立初期,创始人便明确了公司的核心定位:为工程师、学生和业余爱好者提供可靠的测试与测量工具。他们首先推出了一系列电源、十进位箱和电子培训仪,这些产品迅速在行业内获得认可。凭借对产品质量的不懈追求,Global Specialties逐渐在竞争激烈的市场中站稳了脚跟。

问答坊 | AI 解惑

移动视频监控在“数字城管”中的应用

移动式无线视频监控,指系统的视频采集前端是可移动的视频采集终端,对不同的临时监控需求点进行监控。可移动的视频采集终端由于监控点不固定,因此,它必须利用无线公网作为监控数据的传输网络。    移动视频监控系统原理   移动视 ...…

查看全部问答>

请问你们知道前边值和后面的值有什么关系吗?

在2440.h中这么写的 #define ADC_BASE      0xB1800000 // 0x58000000 而在map.a中是这样写的, DCD 0x91800000, 0x58000000,  1  ; A/D convert register 0x91800000: 虚拟地址 0x58000000: 物理地 ...…

查看全部问答>

大家用wince6.0, 在vs2005里是怎么找函数和变量定义的???

转到声明,转到定义都用不了,怎么回事?是不是非托管代码的原因?…

查看全部问答>

关于USB接口的serial驱动

serial驱动是将USB接口模拟成串口?那是怎样与外部设备进行通信的?难道就和普通的串口一样?…

查看全部问答>

八位二进制数转BCD码

怎样将八位的二进制数转换成一字节的BCD码?…

查看全部问答>

PPP协议

  cfanlwn  你那还有PPP协议的资料没,发我一份啊!…

查看全部问答>

WinCE 4.2下软重启的工具

谁有WinCE 4.2下软重启的工具啊。网上的都是用于Win Mobile版本的。不能用。…

查看全部问答>

【讨论】如何自建库并调用它?

在IAR下要如何自建库,又怎么去调用呢?可否举个最简单的例子?????…

查看全部问答>

安装了IAR5.2,破解失败,怎么回事啊,用5.2的朋友进来看看

Fatal Error[Cp001]: Copy protection check, No valid license found for this product对程序进行编译就会有这个错误,用软件破解了啊,也在网上查了,但是还是没有解决我卸载好几遍了希望高手帮助啊…

查看全部问答>