历史上的今天
今天是:2024年09月08日(星期日)
2018年09月08日 | STM32L152 外部中断配置
2018-09-08 来源:eefocus
1、中断配置
以外部中断0,管脚为PA0为例来进行配置
void SYS_EXTI0Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
EXTI_InitTypeDef EXTI_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
//初始化PA0管脚
/* Enable GPIOA clock */
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);//打开PA口时钟
/* Configure PA0 pin as input floating */
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;//输入
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;//浮空,不上拉不下拉
GPIO_InitStructure.GPIO_Pin = KEY_PIN;//管脚
GPIO_Init(KEY_PORT, &GPIO_InitStructure);//初始化
/* Enable SYSCFG clock */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
/* Connect EXTI0 Line to PA0 pin */
SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA, EXTI_PinSource0);
/* Configure EXTI0 line */
EXTI_InitStructure.EXTI_Line = EXTI_Line0;//中断线0
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;//外部中断
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;//下降沿触发
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);//初始化
/* Enable and set EXTI0 Interrupt to the lowest priority */
NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;//外部中断0类型
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x0F;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x0F;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
}
2、中断服务子程序编写
中断服务子程序的函数名是已经定义好了,在固件库中中断文件中这样子说明:
这里写图片描述
在startup_stm32l1xx_mdp.s 文件中,中断函数名如下定义:
; External Interrupts
DCD WWDG_IRQHandler ; Window Watchdog
DCD PVD_IRQHandler ; PVD through EXTI Line detect
DCD TAMPER_STAMP_IRQHandler ; Tamper and Time Stamp
DCD RTC_WKUP_IRQHandler ; RTC Wakeup
DCD FLASH_IRQHandler ; FLASH
DCD RCC_IRQHandler ; RCC
DCD EXTI0_IRQHandler ; EXTI Line 0
DCD EXTI1_IRQHandler ; EXTI Line 1
DCD EXTI2_IRQHandler ; EXTI Line 2
DCD EXTI3_IRQHandler ; EXTI Line 3
DCD EXTI4_IRQHandler ; EXTI Line 4
DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1
DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2
DCD DMA1_Channel3_IRQHandler ; DMA1 Channel 3
DCD DMA1_Channel4_IRQHandler ; DMA1 Channel 4
DCD DMA1_Channel5_IRQHandler ; DMA1 Channel 5
DCD DMA1_Channel6_IRQHandler ; DMA1 Channel 6
DCD DMA1_Channel7_IRQHandler ; DMA1 Channel 7
DCD ADC1_IRQHandler ; ADC1
DCD USB_HP_IRQHandler ; USB High Priority
DCD USB_LP_IRQHandler ; USB Low Priority
DCD DAC_IRQHandler ; DAC
DCD COMP_IRQHandler ; COMP through EXTI Line
DCD EXTI9_5_IRQHandler ; EXTI Line 9..5
DCD LCD_IRQHandler ; LCD
DCD TIM9_IRQHandler ; TIM9
DCD TIM10_IRQHandler ; TIM10
DCD TIM11_IRQHandler ; TIM11
DCD TIM2_IRQHandler ; TIM2
DCD TIM3_IRQHandler ; TIM3
DCD TIM4_IRQHandler ; TIM4
DCD I2C1_EV_IRQHandler ; I2C1 Event
DCD I2C1_ER_IRQHandler ; I2C1 Error
DCD I2C2_EV_IRQHandler ; I2C2 Event
DCD I2C2_ER_IRQHandler ; I2C2 Error
DCD SPI1_IRQHandler ; SPI1
DCD SPI2_IRQHandler ; SPI2
DCD USART1_IRQHandler ; USART1
DCD USART2_IRQHandler ; USART2
DCD USART3_IRQHandler ; USART3
DCD EXTI15_10_IRQHandler ; EXTI Line 15..10
DCD RTC_Alarm_IRQHandler ; RTC Alarm through EXTI Line
DCD USB_FS_WKUP_IRQHandler ; USB FS Wakeup from suspend
DCD TIM6_IRQHandler ; TIM6
DCD TIM7_IRQHandler ; TIM7
DCD 0 ; Reserved
DCD TIM5_IRQHandler ; TIM5
DCD SPI3_IRQHandler ; SPI3
DCD 0 ; Reserved
DCD 0 ; Reserved
DCD DMA2_Channel1_IRQHandler ; DMA2 Channel 1
DCD DMA2_Channel2_IRQHandler ; DMA2 Channel 2
DCD DMA2_Channel3_IRQHandler ; DMA2 Channel 3
DCD DMA2_Channel4_IRQHandler ; DMA2 Channel 4
DCD DMA2_Channel5_IRQHandler ; DMA2 Channel 5
DCD AES_IRQHandler ; AES
DCD COMP_ACQ_IRQHandler ; Comparator Channel Acquisition
使用上面的对应的中断函数名来编写相对应的程序
上一篇:STM32 IAP实现流程
史海拾趣
|
我是上海派睿电子的朱林 下面给您介绍下我们的3个网站 http://www.newark.com/ 这是我们美国的网站 http://uk.farnell.com/ 这是我们英国的网站 www.premierelectronics.com.cn 我们中国的网站 我们公司的简介请查看附件 谢谢 麻烦 ...… 查看全部问答> |
|
首先感谢soso了 提供F2802x_CSP_RTM升级烧写插件 有这个就太简单了 找到28027例程,也就是下载2802X的库文件 这里面有个flash的例程,打开这个程序,把那个Example_2802xFlash.c Remove掉 加上自己主程序例如Example_2802xGpioT ...… 查看全部问答> |
|
我是新手,想做个两路语音采集的电路板,选用TLV320AIC3101,但不知道这个音频编解码器的两个引脚(SDA,SCL)怎么和DSP相连,望有人指点。 [ 本帖最后由 flyingdsp 于 2009-3-24 17:47 编辑 ]… 查看全部问答> |
|
想利用板子的扩展接口让板子提供对单色屏的支持,有朋友做过吗?能提供点相关资料吗?有的话发我邮箱:lylove1943@163.com 大恩不言谢,100分送上!!… 查看全部问答> |
|
问题,如题。 曾尝试在qte根目录里mkspecs里添加arm-elf-g++目录,然后修改qmake.conf中的编译器名称,configure里指定用arm-elf-g++来编译,但是报错。请问大虾们是否有方法让qte或qtopia运行在uClinux平台呢?有的话要怎样做呢? … 查看全部问答> |
|
响应SOSO号召出来显摆下,这是2007年的一个项目的初期文档,项目采用MSP430F149作为主控,小区内通过Zigbee芯片完成组网,然后经GPRS进行数据远程传输,上位机完成数据的分析统计功能,已经有公司将项目中的产品推向市场。这次 ...… 查看全部问答> |
|
Virtex-5 系列概述本概述简要介绍 Virtex-5 系列的功能和产品选择。• Virtex-5 数据手册:直流和开关特性本数据手册包含 Virtex-5 系列的直流和开关特性指标。• Virtex-5 RocketIO GTP 收发器用户指南本指南介绍 Virtex-5 LXT 和 SXT ...… 查看全部问答> |
|
LaunchPad实现AD转换 转换结果经UART通讯送给上位机 // 本程序用定时器A的比较/捕获功能来模拟UART接口,通信的波特率为9600. // 定义P1.1口为模拟串行发送,P1.2为模拟串行接收 //------------------------------------------------------------------------------ #include //--------------- ...… 查看全部问答> |
|
废话不多说,先上图诱惑下大家下 然后自拍了个视频,效果可能不是很好,不要介意哈~ $(\'flv_rZT\').innerHTML=(mobileplayer() ? \"\" : AC_FL_RunContent(\'width\', \'500\', \'height\', \'375\', \'allowNetworking\', \'internal\', \'allo ...… 查看全部问答> |




