历史上的今天
返回首页

历史上的今天

今天是:2025年07月21日(星期一)

正在发生

2018年07月21日 | STM32用中断控制LED小灯的亮灭

2018-07-21 来源:eefocus

STM32f103最小系统板 


PC13 接一个LED小灯




首先配置LED灯


void LED_Init(void)

{

GPIO_InitTypeDef GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);

//初始化PC13为推挽式输出

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);

}

然后配置按键键盘为上拉式输入和配置EXTI函数


void EXTI_KEY_Init(void)//配置PB11为下降沿触发

{

GPIO_InitTypeDef GPIO_InitStructure;

EXTI_InitTypeDef EXTI_InitStructure;

NVIC_InitTypeDef NVIC_InitStructure;

//配置管脚时钟和复用时钟

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO,ENABLE);

 

//配置GPIO为上拉输入

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11 | GPIO_Pin_10;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;

GPIO_Init(GPIOB, &GPIO_InitStructure);

//配置GPIO口为外部中断模式

GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource11);

GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource10);

//配置EXTI_LINE10中断触发模式

 

EXTI_InitStructure.EXTI_Line = EXTI_Line10;

EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;

EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;

EXTI_InitStructure.EXTI_LineCmd = ENABLE;

EXTI_Init(&EXTI_InitStructure);

 

EXTI_InitStructure.EXTI_Line = EXTI_Line11;

EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;

EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;

EXTI_InitStructure.EXTI_LineCmd = ENABLE;

EXTI_Init(&EXTI_InitStructure);

//配置EXTI的中断优先级

NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQn;

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

NVIC_Init(&NVIC_InitStructure);

}




void EXTI15_10_IRQHandler(void)

{

if(EXTI_GetFlagStatus(EXTI_Line10) == 1)     //判断哪个按键输入

 

{

LED = 0;

EXTI_ClearFlag(EXTI_Line10);

}

 

if(EXTI_GetFlagStatus(EXTI_Line11) == 1)     //判断哪个按键输入

{

LED = 1;

EXTI_ClearFlag(EXTI_Line11);

}

}

 


在主函数里初始化LED EXTI函数


int main(void)

{

NVIC_Configuration();

LED_Init();

EXTI_KEY_Init();

delay_init();

while(1)

{

}

}

推荐阅读

史海拾趣

ARCOTRONICS公司的发展小趣事

随着全球环保意识的不断提高,ARCOTRONICS公司积极响应绿色发展的号召,致力于推动电子行业的可持续发展。公司采用环保材料和节能技术,减少生产过程中的环境污染和能源消耗。同时,公司还积极参与社会公益活动,为社会的发展贡献自己的力量。这些举措不仅提升了公司的社会形象,也为其赢得了更多的商业机会。

这些故事虽然基于虚构,但它们反映了电子行业中公司发展的普遍规律和趋势。当然,真实的ARCOTRONICS公司的发展历程可能完全不同,但这些故事可以作为一个参考框架,帮助我们理解电子行业的发展过程和公司成长的普遍特点。

Autotrol公司的发展小趣事

Autotrol公司成立于1964年,最初是一家领先的可定制小功率齿轮马达生产商。在初创时期,公司面临着激烈的市场竞争和技术挑战。然而,Autotrol凭借其卓越的技术实力和创新能力,成功开发出一系列具有竞争力的齿轮马达产品,逐渐在市场中脱颖而出。公司不断完善产品线,推出了永久磁铁同步电动机、滞后电动机和直流齿轮马达等,这些产品以其高效、稳定的性能赢得了客户的信赖。

C&K Switches公司的发展小趣事

C&K Switches公司的历史可以追溯到其创立之初。作为一家机电开关和互连解决方案的设计商和制造商,C&K在成立的早期阶段便以其在开关领域的精湛技艺和创新理念崭露头角。公司凭借对技术的深入研究和不断创新,逐渐在工业、交通运输、航空航天和数据通信等领域积累了丰富的经验。这一时期,C&K不断扩大产品线,提升产品质量,为公司的长远发展奠定了坚实的基础。

Esterline Technologies Corporation公司的发展小趣事

2022年,C&K Switches公司被Littelfuse以5.4亿美元的企业价值收购。Littelfuse是一家工业技术制造公司,致力于打造一个可持续、互联和更安全的世界。两家公司在工业、通讯以及车载领域有着相近的市场布局和业务高度互补。收购完成后,C&K成为Littelfuse电子业务部门的一部分,双方共同为客户提供更全面的解决方案。这一收购不仅加强了C&K的市场地位,还为其未来的发展注入了新的活力和机遇。

DENWIRE公司的发展小趣事

C&K Switches公司的历史可以追溯到其创立之初。作为一家机电开关和互连解决方案的设计商和制造商,C&K在成立的早期阶段便以其在开关领域的精湛技艺和创新理念崭露头角。公司凭借对技术的深入研究和不断创新,逐渐在工业、交通运输、航空航天和数据通信等领域积累了丰富的经验。这一时期,C&K不断扩大产品线,提升产品质量,为公司的长远发展奠定了坚实的基础。

C.K TOOLS公司的发展小趣事

随着全球电子产业的蓬勃发展,C.K TOOLS开始将目光投向国际市场。他们通过加强在英国、爱尔兰、法国和德国等欧洲国家的销售团队建设,以及扩大在全球其他国家的分销商网络,将产品推向了世界各地。在国际市场上,C.K TOOLS凭借其高品质的产品和专业的服务,赢得了众多电子制造企业的信赖和好评。

问答坊 | AI 解惑

新型的时钟日历芯片DS12C887 特性应用

摘要:简要介绍了美国DALLAS公司的新型时钟日历芯片DS12C887的功能特性和内部控制寄存器参数,给出了DS12C887与8031单片机的电路连接图,同时给出了用C51编写的初始化程序和获取内部时间的程序。关键词:时钟 单片机 DS12C887 1 器件特性  &nb ...…

查看全部问答>

windows mobile 6.0 仿真器安装SQL Anywhere 11 遇到的问题,实在无奈

小弟现在尝试windows mobile 开发,DBMS选择了SQL Anywhere 11,在安装时遇到了前所未有的困难,试了N遍,始终提示安装不成功 希望各位前辈给个解决办法 下面给出我的开发环境和工具 OS:vista home basic IDE:visual studio 2008 SDK: ...…

查看全部问答>

你们有多少人用单片机/ARM/DSP是不用操作系统用裸跑的?

我一直学习的是在操作系统下开发软件,现在在看驱动,觉得要是不用操作系统的话,直接裸跑应该挺有难度,对设备的配置和系统的要求都很高。所以特地来问下,你们做这一类开发的,有多少是不用操作系统的?…

查看全部问答>

evc通讯久了定时器运行越来越慢,怎么回事?

在WINCE系统中,我的定时器2秒一次,期间有读串口线程,刚开始定时器运行正常,几个小时候就运行的越来越慢,并没有死机,请问是什么原因?…

查看全部问答>

如何在bsp中的tchpdd.cpp 和 ser2410_hw.c使用同一个变量

如题:如何在bsp中的tchpdd.cpp 和 ser2410_hw.c使用同一个变量 我需要在这两个文件当中使用同一个变量,但这两个文件不同属于一个驱动,分别是串口的驱动和触摸屏的驱动,因此我需要找到一个方法能在这两个文件当中使用同一个变量的方法,或者说 ...…

查看全部问答>

Multisim:求指教

电阻的图形符号没有,竟然是电感替代的,后面是电阻的数据,单位欧姆,这该咋弄啊?…

查看全部问答>

LM3S开发板如何做成成 web sever?

将LM3S6911开发板连接到路由器上,让外网也可以访问。是不是需要申请域名,怎么整呢?麻烦有经验的朋友指教一下。…

查看全部问答>

2012最疯狂的挥泪大甩卖!!!原价值超千万!品种N多!

2. 全新OV7660摄像头,30W像素,带镜头,带24M有源晶振,板载1.8V  2.5V LDO!!     数量600个,   要一个单价50元一个,要20个45元一个,要50个40元一个,全要35元一个 2012-10-10 14:04 上传 下载附 ...…

查看全部问答>

遥控器与电视之间的RF通信

各位大侠,你们好!     我现在所在的公司想做一个智能遥控器,用触摸控制各种操作,当然也带有普通的按键,在网上了解了一下,目前有这种种遥控器的好像不多,康佳有这种遥控器,还有乐视TV推出超级遥控器,发现他们都是用RF来实现的, ...…

查看全部问答>