STM32L152 外部中断配置

本文档详细介绍了如何配置STM32L152的外部中断0,以PA0管脚为例,涵盖了中断配置和中断服务子程序的编写。在固件库的中断文件中找到预定义的中断函数名,并据此编写程序。

STM32L152 中断配置

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
    
如何使用STM32L1XX 标准固件库 1. 创建工程并设置所选型号的启动文件 选择相对应MCU型号的启动文件: * startup_stm32l1xx_md.s: 适用于STM32L Ultra Low Power Medium density devices * startup_stm32l1xx_mdp.s:适用于STM32L Ultra Low Power Medium density Plus devices * startup_stm32l1xx_hd.s: 适用于STM32L Ultra Low Power High density devices * startup_stm32l1xx_xl.s: 适用于STM32L Ultra Low Power XL density devices 上面四种类型所对应的MCU型号分别是: * Ultra Low Power Medium-density devices: - STM32L151x6xx, STM32L151x8xx, STM32L151xBxx, STM32L152x6xx, STM32L152x8xx, STM32L152xBxx, STM32L151x6xxA, STM32L151x8xxA, STM32L151xBxxA, STM32L152x6xxA, STM32L152x8xxA and STM32L152xBxxA, STM32L100x6xx, STM32L100x8xx and STM32L100xBxx * Ultra Low Power Medium-density Plus devices: - STM32L151xCxx, STM32L152xCxx and STM32L162xCxx, STM32L100xCxx * Ultra Low Power High-density devices: STM32L151xDxx, STM32L152xDxx and STM32L162xDxx * Ultra Low Power XL-density devices: STM32L151xExx, STM32L152xExx and STM32L162xExx 2. 根据所选的MCU型号配置固件库 在 stm32l1xx.h (under Libraries\CMSIS\Device\ST\STM32L1xx\Include)中配置所选的MCU类型,以及使用的外设头文件。 #if !defined (STM32L1XX_MD) && !defined (STM32L1XX_MDP) && !defined (STM32L1XX_HD) && !defined (STM32L1XX_XL) /* #define STM32L1XX_MD */ /*!< - Ultra Low Power Medium-densitydevices: STM32L151x6xx, STM32L151x8xx, STM32L151xBxx, STM32L152x6xx, STM32L152x8xx and STM32L152xBxx. - Ultra Low Power Medium-density Value Line devices: STM32L100x6xx,STM32L100x8xx and STM32L100xBxx.*/ /* #define STM32L1XX_MDP */ /*!< - Ultra Low Power Medium-density Plus devices: STM32L151xCxx, STM32L152xCxx and STM32L162xCxx - Ultra Low Power Medium-density Plus Value Line devices: STM32L100xCxx */ /* #define STM32L1XX_HD */ /*!< Ultra Low Power High-density devices: STM32L151xDxx, STM32L152xDxx and STM32L162xDxx */ /* #define STM32L1XX_XL */ /*!< Ultra Low Power XL-density devices: STM32L151xExx, STM32L152xExx and STM32L162xEx
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值