历史上的今天
返回首页

历史上的今天

今天是:2025年01月14日(星期二)

正在发生

2019年01月14日 | STM32 实战 按键点亮LED(中断)

2019-01-14 来源:eefocus

来看看最简单的点亮一个灯的实验你把,实验要求使用KEY4*4按键,按键按下灯亮,按键拿起灯灭,如此一直循环:


程序的思路如下:


1、首先需要设置的是时钟:你将灯的管脚连在哪个端口的某个引脚上面,你就开启哪个端口的时钟,比如灯连在A端口的某个引脚,就要开启A端口的时钟。


2、其次,设置管脚(我们要设置LED和矩阵键盘中的一个键的管脚): 我们需要对GPIO进行初始化设置,我们只需调用 GPIO_InitTypeDef的结构体,对每个成员进行设置,要设置的有PIN管脚的位置GPIO_Pin,还有管脚的速率GPIO_Speed,还有管脚的工作状态GPIO_Mode,最后在调用一下初始化的函数GPIO_Init,


3、然后就开始写我们的主函数:假如我想让led灯的管脚置为高电平,我只需调用GPIO_SetBits函数,它是将管脚置为高电平,若想置为低电平则调用GPIO_ResetBits函数就可以。


4、最后我们要让它按下时亮,抬起时灭,我们需要if语句


——————————————————————————————————————————————————-


下边为程序:所用芯片为STM32F103C8T6  LED控制管脚为C13  矩阵键盘为B9


首先是控制小灯为推挽式输出


void LED_Init (void)

{

GPIO_InitTypeDef GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);//初始化GPIOC时钟

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

GPIO_Init(GPIOC, &GPIO_InitStructure);

 

}

然后是配置矩阵键盘


void KEY_Init (void)

{

GPIO_InitTypeDef GPIO_InitStructure;//配置PB9上拉输入

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//初始化GPIOB时钟

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;

GPIO_Init(GPIOB, &GPIO_InitStructure);

 

}

接下来时主函数


int main()

{

LED_Init();

KEY_Init();


 

while(1)


{

LED = 1;

if(KEY == 0)

{

LED = 0;

}

}

 

}

好嘞,就这样勒。

推荐阅读

史海拾趣

E Connector Solutions公司的发展小趣事

人才是企业发展的核心竞争力。E Connector Solutions公司高度重视人才培养和团队建设。公司建立了完善的人才培养机制,通过内部培训、外部引进等方式不断提升员工的专业技能和综合素质。同时,公司还注重团队建设,鼓励员工之间的协作与交流,营造积极向上的工作氛围。这种注重人才培养和团队建设的做法为公司的发展提供了坚实的人才保障。

请注意,以上故事均为虚构,旨在为您提供一个关于电子连接器解决方案公司发展起来的故事框架。如果您需要了解特定公司的具体发展情况,建议您查阅相关公司的官方网站或行业报告。

台湾固锝(GD)公司的发展小趣事
如果发现电路工作不正常或性能参数不符合要求,应仔细排查故障原因并进行修复。
艾华集团(AISHI)公司的发展小趣事

1985年,艾立华和王安安怀揣着3700元的全部家当,毅然决然地踏上了创业之路。他们租下了两间不到50平方米的废弃小平房,与几名工人一起,手工制作铝电解电容器。由于资金、技术和市场的限制,艾华集团最初只能接一些其他企业不愿意做的、用量很少但又刚需的项目。然而,即便是在这样的困境中,艾立华和王安安也始终坚持对产品品质的精益求精,他们深知,只有高品质的产品才能在市场上立足。

BCD Semi(Diodes)公司的发展小趣事

在追求经济效益的同时,BCD Semi(Diodes)公司也积极履行企业社会责任,关注可持续发展。公司严格遵守环保法规,采用环保材料和工艺,减少生产过程中的污染排放。同时,公司还积极参与社会公益事业,为当地社区的发展做出贡献。这些举措不仅提升了公司的社会形象,也为公司的可持续发展奠定了坚实基础。

请注意,以上故事是基于电子行业的一般情况和BCD Semi(Diodes)公司的行业地位构建的,并非真实发生的历史事件。如需了解BCD Semi(Diodes)公司的真实发展故事,建议查阅公司官方发布的资料或相关新闻报道。

Frolyt Condensers & Elements GmbH公司的发展小趣事

面对电子行业的快速变化,Frolyt Condensers & Elements GmbH深知数字化转型的重要性。近年来,公司积极推进数字化转型,引入先进的ERP系统和智能制造技术,实现了生产过程的自动化、智能化和精细化管理。数字化转型不仅提高了公司的生产效率和产品质量,还降低了运营成本,为公司的持续发展奠定了坚实的基础。同时,Frolyt还利用大数据和人工智能技术优化供应链管理,提升了客户服务水平和市场响应速度。

Hantronix公司的发展小趣事

HANBIT Electronics自成立以来,便致力于技术创新与产品研发。2005年,公司投入大量资源研发新一代高性能手机显示屏技术,成功推出了具有低能耗、高清晰度和广视角特性的OLED屏幕。这一创新不仅迅速获得了市场的认可,还使得HANBIT Electronics在手机零部件供应商中脱颖而出,与多家国际知名品牌建立了长期合作关系。该技术的成功不仅提升了公司的市场份额,也为其后续在高端显示技术领域的持续探索奠定了坚实基础。

问答坊 | AI 解惑

看好WiMAX技术,英特尔6亿美元投资Clearwire

      近日,高速无线宽带服务供应商Clearwire宣布了和Intel和Motorola的一系列交易,内容包括Clearwire将获得了9亿美元的融资,这包括英特尔风险投资公司Intel Capital的6亿美元,摩托罗拉将收购Clearwire公司的Nex ...…

查看全部问答>

全国大学生电子设计竞赛相关帖子汇总

由于帖子的不断更新以及论坛的现实篇幅有限,故难免会有一些好贴沉下去而不能发挥余热~~~ 在此特整理汇总全国大学生电子设计竞赛相关帖子链接,方便大家查阅浏览~~~~(不断更新中) 本汇总贴是人工寻找的,可能会有遗漏和不当,请大家见谅~~~发现有 ...…

查看全部问答>

DSP 程序动态加载问题

选用的是TMS320C6713 外挂FLASH和SDRAM 程序分为3部分 1K bootload汇编程序 基本通信程序 算法主程序 上电后EDMA自动从FLASH加载1K bootload代码到IRAM,利用bootload程序将基本通信程序加载到IRAM,利用_c_int00跳转到基本通信程序执行。再利用 ...…

查看全部问答>

在飞凌S3C6410开发板上成功移植VXWORKS嵌入式操作系统!

本文出自 飞凌嵌入式官方网站  www.witech.com.cn VXWORKS是当今最稳定可靠的嵌入式实时操作系统,TE6410作为高端嵌入式开发板,已经被成功移植 VXWORKS,附件为相关文档(版权问题,部分内容未能发布,此文档仅作为参考,希望对朋友们 ...…

查看全部问答>

PB编译的时候遇到错误,哪位能帮我一下啊,谢谢!

我是一名新手,我用wince5.0编译一个新建的PB的时候,提示有下面的错误: making: FATAL ERROR:Cannot open F:\\新建文件夹\\2222\\Reldir\\smdk2440a_ARMV4I_Relea\\postproc\\platform.bib making: FATAL ERROR:Cannot open F:\\新建文件夹\\ ...…

查看全部问答>

pic18f452定时器中断问题

OSCCON=0x70; //内部时钟8Mhz PORTD=0; TRISD=0; T0CON=0x05; //关定时器,16位,内部时钟源,64分频 TMR0H=??; //0.1s    TMR0L=?? 如何计算这两个值使时间为0.1s?在线等啊 我算出来一直多了2倍 诶…

查看全部问答>

SD写函数写不进去,求助高手~~~~

这里用的f_write是例程中自带的,应该没有错吧。可是不知道为什么就是写不进去。 例如试验如下: A.txt原有内容是zyz 在超级终端输入命令: write a.txt china 显示是写成功的,可是打开a.txt。里面的内容却不是china,而是原来的数据。哪位前 ...…

查看全部问答>

请教STM32USBIAP!!

我做一个HID类设备,需要加IAP功能,但是不想用做两个设备。也就是说我要用HID类设备来更新程序,不用STM的DFU。…

查看全部问答>

请教uint16定义

在下列定义中 struct HISPCP_BITS  {   // bits  description    Uint16 HSPCLK:3;       // 2:0   Rate relative to SYSCLKOUT    Uint16 rsvd1:13;  & ...…

查看全部问答>

LPC1114在keil MDK下载报错flash timeout

各位大大! 我的原理图   利用keilV4.13a下载的时候,总是如下报错: 但是,Utilities setting中已显示检测到ARM core,如下图: 网上百度了很多,感觉是flash算法的问题,请问哪位大大能帮我看看? 原理图上reset管脚直接置高的作 ...…

查看全部问答>