历史上的今天
返回首页

历史上的今天

今天是:2024年12月26日(星期四)

正在发生

2018年12月26日 | STM32 中断实现的程序步骤

2018-12-26 来源:eefocus

本程序实现的功能:将GPIO.13端口设置成下降沿触发中断,当中断事件发生后,与GPIOD.8相连的LED变亮。


步骤:


① 配置要使用到的端口的时钟,输入输出以及端口的第二功能(这里的第二功能是指把端口配置成EXTI口)


 void GPIO_Configuration(void)
{

  /* Configure PC13 as input floating (EXTI Line13) */
  GPIO_InitTypeDef GPIO_InitStructure;
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  GPIO_Init(GPIOC, &GPIO_InitStructure);

 

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9 ;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_Init(GPIOD, &GPIO_InitStructure); 

}


②初始化EXTI_InitStructure结构体的各种需要的配置  

  /* Connect EXTI Line13 to PC.13 */
  GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource13);

  /* Configure EXTI Line13 to generate an interrupt on falling edge */  
  EXTI_InitStructure.EXTI_Line = EXTI_Line13;
  EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
  EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
  EXTI_InitStructure.EXTI_LineCmd = ENABLE;
  EXTI_Init(&EXTI_InitStructure);

  /* Generate software interrupt: simulate a falling edge applied on EXTI line 13 */
//  EXTI_GenerateSWInterrupt(EXTI_Line13);   //若使用此句,则不用手动触发中断事件,软件自动触发,继而直接转入中断处理函数。


 ③设置抢占式优先级和响应式优先级

void NVIC_Configuration(void)
{
  NVIC_InitTypeDef NVIC_InitStructure;
  
#ifdef  VECT_TAB_RAM  
  /* Set the Vector Table base location at 0x20000000 */ 
  NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0); 
#else  /* VECT_TAB_FLASH  */
  /* Set the Vector Table base location at 0x08000000 */ 
  NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);   
#endif

  /* Configure one bit for preemption priority */
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
  
  /* Enable the EXTI15_10 Interrupt */
  NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQChannel;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure); 
}      


④ 在stm32f10x_it.c的EXTI15_10_IRQHandler中断函数里,完成中断处理程序。

void EXTI15_10_IRQHandler(void)
{
  if(EXTI_GetITStatus(EXTI_Line13)!=RESET)   
  {
    EXTI_ClearITPendingBit(EXTI_Line13);  //别忘记清除中断标志位哦!!!!
  GPIO_SetBits(GPIOD, GPIO_Pin_8 );
  GPIO_ResetBits(GPIOD, GPIO_Pin_9);
  }

}


推荐阅读

史海拾趣

依必安派特(ebmpapst)公司的发展小趣事

为了进一步满足中国市场的本地化需求,依必安派特在2005年成立了依必安派特电机(上海)有限公司,开始了国产化进程。这一举措不仅提高了产品的性价比,还缩短了交货周期,使得依必安派特在中国市场的竞争力得到了显著提升。随着国产化产品的快速增长,依必安派特在中国的前十年市场业绩突飞猛进,为后续的飞跃发展打下了坚实基础。

Advanced Optoelectronic Technology Corp公司的发展小趣事

随着产品线的不断扩展,AOTC开始进军国际市场。公司积极与各大电子厂商合作,将光电转换器集成到各类电子产品中,从而实现了市场份额的快速增长。同时,公司还不断投入研发,对产品进行升级迭代,以满足市场不断变化的需求。

AZM [Arizona Microtek, Inc]公司的发展小趣事

随着电子行业的快速发展,AZM公司意识到只有不断创新才能在激烈的市场竞争中立于不败之地。因此,公司加大了对研发的投入,积极引进高端人才,建立了完善的研发体系。通过持续的技术创新,AZM公司成功推出了一系列具有领先水平的微电子产品,不仅提升了公司的市场竞争力,也为整个电子行业的发展做出了贡献。

ERP公司的发展小趣事

面对不断变化的市场环境和客户需求,电子智链始终保持创新和进取的精神。公司不断投入研发资源,推出新的ERP产品和解决方案,以满足客户日益增长的需求。同时,电子智链也积极应对来自国内外竞争对手的挑战,通过不断提高产品质量和服务水平来巩固自身的市场地位。在未来的发展中,电子智链将继续秉持“客户至上、创新驱动”的理念,致力于为电子企业提供更加先进、高效和可靠的ERP解决方案。

博众电气(BOZHONG ELECTRIC)公司的发展小趣事

在快速发展的电子行业,创新能力是企业保持竞争力的关键。博众电气深知这一点,因此始终注重研发团队的建设和新品开发。

公司组建了一支专业的自动化设备开发团队和一流的新品研发技术团队。这些团队成员都拥有丰富的行业经验和深厚的技术功底,能够迅速响应市场需求,开发出具有竞争力的新产品。

在新品开发方面,博众电气始终坚持创新引领、质量至上的原则。公司不断推出具有创新性和实用性的新产品,赢得了客户的广泛认可和好评。

Flambeau公司的发展小趣事

在追求经济效益的同时,Flambeau公司始终不忘履行社会责任和环保使命。公司积极响应全球可持续发展号召,将环保理念融入产品研发、生产和销售的各个环节。通过采用环保材料、优化生产工艺、推广循环经济等措施,Flambeau有效降低了产品生命周期中的环境影响。此外,公司还积极参与环保公益活动和社会责任项目,为推动电子行业的绿色可持续发展贡献力量。

问答坊 | AI 解惑

51单片机制作的测电流电压的治具

硬件) MCU为常用的89S51,ADC为MAX1166 16位ADC可申请免费样品 软件) C语言实现,显示数据双0.001~9999.0, 从2009年3月19日起我决定用AT89S52单片机做个计算器同时能测电压或电流的开发板,同时还具备运行uCOS-II实时系统的硬件环境. 朋友们支持吧. ...…

查看全部问答>

嵌入式计算机引领武器装备新时代

计算机是信息化、智能化武器系统的灵魂。在相当长的一段时间里,武器装备及其计算机基本上自成系统。自从出现微型计算机后,二者才越来越紧密地融合在一起,出现了嵌入式计算机(Embedded Computer)。嵌入式计算机是嵌入到对象体系(即宿主系统) ...…

查看全部问答>

TPS7101 FB引脚电压

使能端置低电平时为什么FB引脚的电压总是在跳动?问题出在哪里?谢谢…

查看全部问答>

PT2272 无线遥控接收解码器芯片

本帖最后由 jameswangsynnex 于 2015-3-3 19:59 编辑 PT2272 无线遥控接收解码器芯片 …

查看全部问答>

要去Intersil面试,大家用过这家公司的东西么?

下周要去面Intersil 信号方面的应用工程师,只知道他们挺看重模拟这块的,但着实没有用过他家的产品,不知道大家用着感觉如何?是做事的公司么?这家公司前景怎么样呢?…

查看全部问答>

用89s52单片机的测方波占空比问题,高分!

用89s52单片机的测方波占空怎么做啊,赠送高分!!…

查看全部问答>

关于中星微USB摄像头的若干问题?

1、ZC0301是DSP芯片,我在spgca的驱动里面看到关于DSP桥接控制芯片的字段,两者是不是同一个东西? 2、关于寄存器的设置,有对CMOS寄存器的设置和对DSP芯片寄存器的设置,我现在不太清楚两者之间有没有联系,比如说设置自动白平衡,是只需要设置CM ...…

查看全部问答>

请教关于F2812的FLASH

各位高手:     我在用F2812开发数据采集卡。想用F2812的片上FLash做临时数据存储区。    请问是否可行?会有什么问题。    请不吝赐教。…

查看全部问答>