历史上的今天
返回首页

历史上的今天

今天是:2025年08月16日(星期六)

正在发生

2019年08月16日 | STM32笔记(二)(寄存器)——矩阵键盘

2019-08-16 来源:eefocus

      矩阵键盘是我第一个需要动手焊接东西的实验,是3*3的键盘,焊了一个下午。因为是第一次焊东西,有多处不足,但最后也勉强能用。键盘的电路是组长设计的,希望下一次我能自己独立设计电路。


键盘外观

正面


背面 


 外观略显粗糙。。。。


主要代码 

      矩阵键盘最主要的一部分代码就是按键扫描部分,通过一个扫描函数对高低电平进行判断,从而确定按键的位置。用过串口输出案件编号1~9。


key.c代码


void KEY_Init1(void)

{

RCC->APB2ENR|=1<<3;     

JTAG_Set(SWD_ENABLE);

GPIOB->CRL&=0X000FFFFF; //PB5,6,7

GPIOB->CRL|=0X33300000;  

GPIOB->CRH&=0XFFFFF000; //PB8,9,10

GPIOB->CRH|=0X00000888; 

 

GPIOB->ODR|=1<<5;    

GPIOB->ODR|=1<<6;    

GPIOB->ODR|=1<<7;    

  

KEY1=1;

KEY2=1;

KEY3=1;

 

 

void KEY_Init2(void)

{

GPIOB->CRL&=0X000FFFFF; //PB5,6,7

GPIOB->CRL|=0X88800000;  

 

GPIOB->CRH&=0XFFFFF000; //PB8,9,10 

GPIOB->CRH|=0X00000333;

 

GPIOB->ODR|=1<<8;    

GPIOB->ODR|=1<<9;    

GPIOB->ODR|=1<<10;

 

KEY4=1;

KEY5=1;

KEY6=1;

 

 

u8 KEY_Scan(void)

{

u8 a=0,b=0;

 

KEY_Init1(); 

 

  if(KEY4_in==1||KEY5_in==1||KEY6_in==1)

{

delay_ms(10);

if(KEY4_in==1) a=1;

else if(KEY5_in==1) a=2;

else if(KEY6_in==1) a=3;

}

else  return 0;

 

 

  GPIOB->ODR &=~(1<<5);

GPIOB->ODR &=~(1<<6);

GPIOB->ODR &=~(1<<7);

KEY_Init2();

delay_ms(10);

if(KEY1_in==1) b=1;

else if(KEY2_in==1) b=2;

else if(KEY3_in==1) b=3;

else  return 0;

GPIOB->ODR &=~(1<<8);

GPIOB->ODR &=~(1<<9);

GPIOB->ODR &=~(1<<10);

KEY_Init1();

 

return ((a-1)*3+b);

}

这一部分也是最主要的代码,u8  KEY_Scan()是扫描函数。


实验结果

推荐阅读

史海拾趣

Advanced Semiconductor, Inc.公司的发展小趣事

随着全球对环保和可持续发展的重视,ASI也积极响应这一趋势,致力于研发更加环保、节能的半导体产品。公司不断投入资源研发低功耗、高性能的芯片技术,为推动绿色电子产业的发展贡献力量。同时,ASI也对未来充满信心,将继续加大在新技术、新应用领域的投入,为半导体行业的未来发展贡献更多的智慧和力量。

这五个故事展示了Advanced Semiconductor, Inc.在电子行业中的发展历程和取得的成就。从创立初期的艰难探索到如今的行业领先地位,ASI凭借其独特的技术、创新的精神和敏锐的市场洞察力,不断突破自我、超越自我,成为了半导体行业的一颗璀璨明星。

GISMA Steckverbinder GmbH公司的发展小趣事

GISMA深知客户需求的重要性,因此始终将客户需求放在首位。公司拥有一支专业的研发团队和客户服务团队,能够根据客户的具体需求量身定制产品,提供从设计到生产的全方位服务。这种定制化服务模式不仅赢得了客户的广泛赞誉,也进一步巩固了GISMA在电子行业中的市场地位。通过深入了解客户需求,GISMA不断优化产品设计和生产流程,为客户提供更加优质的产品和服务。

Dongguan City Niuhang Electronics Co.LTD公司的发展小趣事

随着公司业务的不断拓展,Dongguan City Niuhang Electronics Co.LTD意识到技术创新的重要性。公司投入大量资金和技术人员,专注于芯片新技术、封装自动化的研究和开发。经过数年的努力,公司成功研发出一系列高性能的二极管、整流器等产品,其中多项技术获得国家级发明专利。这些创新产品不仅提升了公司的市场竞争力,也为公司赢得了业界的广泛认可。

EECO Switch公司的发展小趣事

EECO Switch公司成立于1947年,最初作为加利福尼亚州的一家电子工程公司,致力于电子产品的设计与制造。随着技术的不断进步和市场需求的变化,公司逐渐将业务重心转向人机界面产品的设计与开发。在这个过程中,EECO Switch凭借其深厚的技术积累和创新精神,成功开发出了一系列具有领先技术的人机界面产品,从而确立了其在该领域的领先地位。

CUI Inc.公司的发展小趣事

自1989年成立以来,CUI Inc.一直站在电源设计的前沿。公司不断投资于研发,致力于开发出更高效、更环保的电源产品。通过引入先进的电源管理技术和创新的设计方法,CUI成功地帮助客户提高了应用的能效,减少了能源消耗。这种对电源技术的专注和创新,使CUI在竞争激烈的电子行业中脱颖而出,赢得了众多客户的信赖和好评。

CyOptics Inc公司的发展小趣事

CyOptics Inc公司自创立以来,一直专注于磷化铟(InP)光学芯片及组件的研发和生产。凭借其在光学领域的深厚积累和技术创新,CyOptics逐渐在数据通讯及电信市场上树立了技术领先的形象。公司的850nm多模VCSEL和PIN器件等产品,因其高性能和可靠性,被广泛应用于短距离数据通信网络中,获得了市场的广泛认可。

问答坊 | AI 解惑

USBISP下载线资料

USBISP下载线资料…

查看全部问答>

iPhone被指全球最差电话,你的观点呢?

CNET英国网站将iPhone(手机上网)评为“全球最差电话”    导读:CNET英国网站今天撰文称,虽然iPhone拥有诸多功能,但其电话功能却存在很多缺陷,甚至可以被称作全球最差的电话。   以下为文章概要:   iPhone或许是最棒的手持上网设备 ...…

查看全部问答>

avr通过rs485接收的串口数据错码怎么解决?高手来看下。

用串口调试软件发数据给单片机,单片机再把收到的数据发出去,用串口调试软件查看单片机发送的数据. 结果发现串口调试软件接收到的数据很多和发出去的不一样,搞不清楚是怎么回事了,懂的人指导一下。 波特率1200,无校验,数据位8,停止位1 。 ...…

查看全部问答>

读写文本文件(.net)

用C#编写 在WinCE中怎么读写文本文件 如果里边有10W行数据的话,用哪种方式速度最快!…

查看全部问答>

【台湾AD6培训视频教程】需要的快下手

我学习AD的时候用的就是这个视频,AD就是Altium Designer.其实早就想传了,只是没有时间,今天五一假期最后一天,啥也不干,整理学习资料奉献给大家!~因为前几天我在论坛主页看新帖的时候都是 一样的标题,而且每个标题还都只有很小很小的附件 ...…

查看全部问答>

] 4~16V开关稳压电源详细设

本帖最后由 paulhyde 于 2014-9-15 03:33 编辑 …

查看全部问答>

【MSP430共享】iar_msp430教程

IAR嵌入式工作平台Embedded Workbench为开发不同的目标处理器的项目提供强有力的开发环境,并为每一种目标处理器提供工具的选择。本章给出嵌入式工作平台的Embedded Workbench使用的项目模式简要讨论,并说明用户怎样用它来开发典型的应用程序。 [ ...…

查看全部问答>

经典硬件设计经验【收藏】

一:成本节约现象一:这些拉高/拉低的电阻用多大的阻值关系不大,就选个整数5K吧点评:市场上不存在5K的阻值,最接近的是4.99K(精度1%),其次是5.1K(精度5%),其成本分别比精度为20%的4.7K高4倍和2倍。20%精度的电阻阻值只有1、1.5、2.2、3.3、 ...…

查看全部问答>

【自发活动召集】边做边学C28x系列开发板

我之前发了个帖子:有人想做或者要28335或者28069的TI的开发板吗?https://bbs.eeworld.com.cn/thread-346517-1-2.html有很多人响应,但是问题都很多,都觉得不够详细,我这里发个简单介绍吧,也希望大家多讨论,能完善下我的想法,谢谢! 附件是 ...…

查看全部问答>