【EFM32开发笔记】GPIOE外部中断使用

 1 /**************************************************************************//**
 2  * @brief  Gpio回调函数
 3  * @param  pin - pin which triggered interrupt
 4  *****************************************************************************/
 5 void gpioCallback(uint8_t pin)
 6 {
 7   if (pin == 9)
 8   {
 9     BSP_LedToggle(3);   //端口翻转,LED亮灭交替
10   }
11   else if (pin == 10)
12   {
13     BSP_LedToggle(0);
14   }
15 }
16
17 /**************************************************************************//**
18  * @brief  Gpio setup. Setup button pins to trigger falling edge interrupts.
19  *  Register callbacks for that interrupts.
20  *****************************************************************************/
21 void gpioSetup(void)
22 {
23   /* Enable GPIO in CMU */
24   CMU_ClockEnable(cmuClock_GPIO, true);
25
26   /* Initialize GPIO interrupt dispatcher */
27   GPIOINT_Init();
28
29   /* Configure PB9 and PB10 as input */
30   GPIO_PinModeSet(gpioPortB, 9, gpioModeInput, 0);
31   GPIO_PinModeSet(gpioPortB, 10, gpioModeInput, 0);
32
33   /* Register callbacks before setting up and enabling pin interrupt. */
34   GPIOINT_CallbackRegister(9, gpioCallback);
35   GPIOINT_CallbackRegister(10, gpioCallback);
36
37   /* Set falling edge interrupt for both ports */
38   GPIO_IntConfig(gpioPortB, 9, false, true, true);
39   GPIO_IntConfig(gpioPortB, 10, false, true, true);
40 }
41
42 /**************************************************************************//**
43  * @brief  Main function
44  *****************************************************************************/
45 int main(void)
46 {
47   /* Chip errata */
48   CHIP_Init();
49
50   /* If first word of user data page is non-zero, enable eA Profiler trace */
51   BSP_TraceProfilerSetup();
52
53   /* Initialize gpio */
54   gpioSetup();
55
56   /* Initialize LED driver */
57   BSP_LedsInit();
58
59   /* Infinite loop */
60   while (1);
61 }

按下板上的按键(PB0、PB1)将会实现LED的亮灭交替。

时间: 2024-08-03 23:41:10

【EFM32开发笔记】GPIOE外部中断使用的相关文章

STM32学习笔记(九) 外部中断,待机模式和事件唤醒

学会知识只需要不段的积累和提高,但是如何将知识系统的讲解出来就需要深入的认知和系统的了解.外部中断和事件学习难度并不高,不过涉及到STM32的电源控制部分,还是值得认真了解的,在本文中我将以实际代码为例详细讲解这些内容,希望对每一个阅读者有帮助. 1.外部中断 如果已经学习了SysTick系统时钟滴答实验,掌握了Cortex-M3中断的相关知识,那么外部中断也是比较好理解的,和SysTick中断一样,外部中断也是当有信号触发时,如果中断屏蔽寄存器允许触发,就会产生中断,这时CPU查找中断向量表,

外部中断的使用

STM32学习笔记:外部中断的使用 中断对于开发嵌入式系统来讲的地位绝对是毋庸置疑的,在C51单片机时代,一共只有5个中断,其中2个外部中断,2个定时/计数器中断和一个串口中断,但是在STM32中,中断数量大大增加,而且中断的设置也更加复杂.今天就将来探讨一下关于STM32中的中断系统. 1 基本概念 ARM Coetex-M3内核共支持256个中断,其中16个内部中断,240个外部中断和可编程的256级中断优先级的设置.STM32目前支持的中断共84个(16个内部+68个外部),还有16级可编

CC2540开发板学习笔记(三)——外部中断

一.实验内容 通过外部中断方式依次按下按键S1控制LED1的亮灭 二.实验过程 1.电路原理图同上 2.中断的概念 比如说我们在执行main函数时,突然来了个指令.优先级比现在执行的main还高,那我们便选择跳过去执行优先级高的,完了之后再执行main函数,中断就类似这样一个概念,使用中断可以减少CPU的无效浪费,降低能耗. 3.寄存器调度 (1)LED1的初始化..同前两节,就是SEL,DIR,INP三个,还有附初始状态. (2)外部中断初始化(S1的外部中断初始化) 按键S1外部中断初始化方

STM32本学习笔记EXTI(外部中断)

参考资料:STM32数据表.网络信息 =========================================切割线========================================= 外部中断/事件控制器由19个产生事件/中断要求的边沿检測器组成.每一个输入线能够独立地配置 输入类型(脉冲或挂起)和相应的触发事件(上升沿或下降沿或者双边沿都触发).每一个输入线都能够被独 立的屏蔽. 挂起寄存器保持着状态线的中断要求. ==========================

cortex_m3_stm32嵌入式学习笔记(十五):待机唤醒实验(WK_UP外部中断)

很多单片机都有低功耗模式, STM32 也不例外.在系统或电源复位以后,微控制器处于运行状态.运行状态下的 HCLK 为 CPU 提供时钟,内核执行程序代码.当 CPU 不需继续运行时,可以利用多个低功耗模式来节省功耗,例如等待某个外部事件时.用户需要根据最低电源消耗,最快速启动时间和可用的唤醒源等条件,选定一个最佳的低功耗模式. STM32 的低功耗模式有 3 种: 1)睡眠模式( CM3 内核停止,外设仍然运行) 2)停止模式(所有时钟都停止) 3)待机模式( 1.8V 内核电源关闭) 在这

cortex_m3_stm32嵌入式学习笔记(四):外部中断实验

本章学习将STM32的IO口作为外部中断输入(实现和按键扫描一样的功能) STM32 的每个 IO 都可以作为外部中断的中断输入口,这点也是 STM32 的强大之处. STM32F103 的中断控制器支持 19 个外部中断/事件请求.每个中断设有状位,每个中断/事件都有独立的触发和屏蔽设置. STM32F103 的19 个外部中断为: 线 0~15:对应外部 IO 口的输入中断.(本章只学习这一种) 线 16:连接到 PVD 输出. 线 17:连接到 RTC 闹钟事件. 线 18:连接到 USB

外部中断实验

实验4 外部中断实验 一.实验目的 理解中断的基本概念. 掌握STM32的中断源及中断优先级. 掌握STM32外部中断技术的基本使用方法. 掌握STM32中断处理程序的编程方法. 二.实验内容 硬件设计原理图如下图1所示:LED的连接在上一节已经介绍过了,在STM32开发板上的按键KEY0是接在PE4上,KEY1是接在PE3上的,KEY2是连在PE2上,WK_UP接在PA0上. 三.实验预备知识 中断对于开发嵌入式系统来讲的地位绝对是毋庸置疑的,在C51单片机时代,一共只有5个中断,其中2个外部

SimpliciTI开发笔记(中文版)

1.简介 此文件为有效使用SimpliciTI协议支持提供必要的信息.文中频繁地提到源代码文件,是因为源代码提供了这种支持. ? 在无线电使用的具体实施中,会有一些差别.参考中提到的固件支持协议本身,而没有特定的硬件. 2.参考文献 (1)SimpliciTI规范,TI,2007 (2)SimpliciTI 频率捷变应用笔记,2008 (3)SimpliciTI API (4)SimpliciTI应用安全 (5)SimpliciTI应用指南 3.概述 SimpliciTI是一种基于点对点通信的协

STM32基本GPIO操作:按键输入(扫描+外部中断)

(涉及专有名词较多,难免解释不到位,若有错误还请指出,谢谢!) 硬件连接图如下: 一.扫描 思路是在main函数中通过死循环来扫描端口电平状态检测,以此判断按键是否按下.实现较为简单. 1.初始化(注意C语言中变量声明需放在函数开头) 以下是初始化PB5端口(LED灯)的代码,每一条语句的含义在我另一篇博客里 GPIO_InitTypeDef GPIO_Init1; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); GPIO_Init1.