【经验】32位MCU EFM32 系列GPIO外部中断使用经验
SILICON LABS 32位MCU EFM32功耗低至 37 μA/MHz,封装尺寸小至 4 mm x 4 mm,拥有行业标准的ARM® Cortex®-M处理器的性能。高效节能,具备业界最低的睡眠电流0.5 µA ,自动外设PRS系统,LESENSE传感器接口;所有产品线均为低功耗系列,如Cortex M0+,M3,M4+。具备丰富的开发生态环境:Simplicity Studio可以提供开发需要的所有资源,Energy profiler优化电池使用寿命,具有丰富的软件库、code examples、demos。
这里重点介绍GPIO外部中断的使用,EFM32 系列MCU 的引脚组织为每个端口16个引脚,每个独立的GPIO引脚命名为Pxn,x表示端口号(A,B,C…),n表示引脚号(0,1,….15)。EFM32的GPIO输入信号可以作为外部中断信号源的输入。
EFM32 MCU的任意一个GPIO引脚都可以产生中断,这些中断可以将MCU从低功耗模式(EM1-EM3)唤醒。可以设置为上升沿或下降沿检测,也可以双边检测。引脚号相同的引脚共用一个中断触发标志,所以不能同时作为中断输入,即PA5,PB5…PF5触发同一个中断,因此不能PA5,PB5….PF5同时作为外部中断引脚。也就是说在同一个工程里面我们不能把PA5,PB5都配置为外部中断,如果这样配置只响应后者PB5的外部中断,PA5的外部中断不响应。
所以对于EFM32 MCU外部中断最多使用16个,而且在使用这16个外部中断要配置的Pxn管脚时的n是不能相同的。
GPIO共有两个中断向量,引脚号0开始算起,如PA0对应为奇数触发,PA1对应为偶数中断触发,PA2对应为奇数中断触发以此类推,对于不同引脚触发的中断区分要依靠查询相应的中断标志位。
范例可以参考Simplicity Studio开发环境下的AN0012应用笔记对应的范例程序。
下面的参考程序是STK3800评估板对应型号EFM32GG230F0124为例的。
* any purpose, you must agree to the terms of that agreement.
*
******************************************************************************/
#include "em_device.h"
#include "em_chip.h"
#include "em_cmu.h"
#include "em_emu.h"
#include "em_gpio.h"
#include "bsp.h"
// GG11 STK currently does not have LEDs defined
#if defined BSP_STK_BRD2204A
#ifndef BSP_GPIO_LED0_PORT
#define BSP_GPIO_LED0_PORT gpioPortH
#endif
#ifndef BSP_GPIO_LED0_PIN
#define BSP_GPIO_LED0_PIN 10
#endif
#ifndef BSP_GPIO_LED1_PORT
#define BSP_GPIO_LED1_PORT gpioPortH
#endif
#ifndef BSP_GPIO_LED1_PIN
#define BSP_GPIO_LED1_PIN 13
#endif
#endif
#define BSP_GPIO_BUTTONS
#define BSP_NO_OF_BUTTONS 2
#define BSP_GPIO_PB0_PORT gpioPortB
#define BSP_GPIO_PB0_PIN 9
#define BSP_GPIO_PB1_PORT gpioPortB
#define BSP_GPIO_PB1_PIN 10
/**************************************************************************//**
* @brief GPIO Even IRQ for pushbuttons on even-numbered pins
*****************************************************************************/
void GPIO_EVEN_IRQHandler(void)
{
// Clear all even pin interrupt flags
GPIO_IntClear(0x5555);
// Toggle LED0
GPIO_PinOutToggle(BSP_GPIO_LED0_PORT, BSP_GPIO_LED0_PIN);
}
/**************************************************************************//**
* @brief GPIO Odd IRQ for pushbuttons on odd-numbered pins
*****************************************************************************/
void GPIO_ODD_IRQHandler(void)
{
// Clear all odd pin interrupt flags
GPIO_IntClear(0xAAAA);
// Toggle LED01
GPIO_PinOutToggle(BSP_GPIO_LED0_PORT, BSP_GPIO_LED0_PIN);
}
/**************************************************************************//**
* @brief GPIO initialization
*****************************************************************************/
void initGPIO(void)
{
// Configure GPIO pins
CMU_ClockEnable(cmuClock_GPIO, true);
// Configure PB0 and PB1 as input with glitch filter enabled
GPIO_PinModeSet(BSP_GPIO_PB0_PORT, BSP_GPIO_PB0_PIN, gpioModeInputPullFilter, 1);
GPIO_PinModeSet(BSP_GPIO_PB1_PORT, BSP_GPIO_PB1_PIN, gpioModeInputPullFilter, 1);
// Configure LED0 and LED1 as output
GPIO_PinModeSet(BSP_GPIO_LED0_PORT, BSP_GPIO_LED0_PIN, gpioModePushPull, 0);
// Enable IRQ for even numbered GPIO pins
NVIC_EnableIRQ(GPIO_EVEN_IRQn);
// Enable IRQ for odd numbered GPIO pins
NVIC_EnableIRQ(GPIO_ODD_IRQn);
// Enable falling-edge interrupts for PB pins
GPIO_IntConfig(BSP_GPIO_PB0_PORT, BSP_GPIO_PB0_PIN, 0, 1, true);
GPIO_IntConfig(BSP_GPIO_PB1_PORT, BSP_GPIO_PB1_PIN, 0, 1, true);
}
/**************************************************************************//**
* @brief Main function
*****************************************************************************/
int main(void)
{
// Chip errata
CHIP_Init();
// Initializations
initGPIO();
while (1){
// Enter Low Energy Mode until an interrupt occurs
EMU_EnterEM3(false);
}
}
- |
- +1 赞 0
- 收藏
- 评论 0
本文由梧桐叶提供,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。
相关推荐
【经验】航顺32位MCU HK32F030M FLASH擦写操作非法操作解决方案
HK32F030M是航顺一款入门级经济型32位MCU,使用ARM® Cortex®-M0内核,最高工作频率32MHz。本文将介绍HK32F030M FLASH擦写操作非法操作解决方案。
【经验】如何基于J-FLASH对32位MCU EFM32 进行批量烧写?
Silicon Labs 32位MCU EFM32,以低功耗、高性能等著称,被广泛应用在电池供电等需要低功耗的领域。因应用广泛,在批量烧写上,也得到多家软件支持。本文将详细描述名基于SEGGER的J-Flash软件对EFM32烧写FLASH的方法及步骤。
【经验】32位MCU EFM32系列中断分组及优先级设置方式
Silicon Labs的32位MCU EFM32系列广泛应用于物联网、智能家居、无线抄表、智能照明、可穿戴设备等领域。中断是一个MCU中比较核心的部分,在实时性要求比较高、功耗低的场合经常需要中断的配合,中断优先级是根据中断事件的重要性和紧迫程度做出的一个设置,系统先响应优先级高的中断请求,再响应优先级低的中断请求。
灵动微电子扎根张江造“芯”,打造本土32位MCU知名品牌
灵动微电子成立于2011年,2016年进军MCU市场,2019年积极向工业、大家电、汽车等领域发力,目前已涵盖消费电子、电机与电源、家电、汽车、计算机与通信、工业控制等应用领域,客户群体包括飞利浦、小米、汇川、海尔、海信、美的等,是中国本土领先的通用32位MCU 产品及解决方案供应商。
【IC】32位MCU HK32C030家族,业界创新,12寸迭代超高性价比
航顺芯片新推出的32位MCU HK32C030,12寸迭代具有超高性价比。适用于工业应用,物联网,PC外设,智能家居,医疗设备,大小家电,手持设备等领域
【IC】芯科科技EFM32PG28 32位低功耗微控制器,1.71-3.8V宽工作电压范围,嵌入式物联网的理想选择
随着AIoT和可穿戴技术的爆炸式增长,低功耗微控制器(MCU)已经无处不在,因为许多应用都有最小化功耗的需求。本文整理了当今市场上可用的低功耗MCU及其功能特性。以下内容摘要介绍Silicon Labs(亦称“芯科科技”)的EFM32PG28(PG28)32位MCU产品。
SILICON LABS 32-bit Microcontroller选型表
SILICON LABS 32位MCU选型,频率24MHz~80MHz,Flash存储4kB~2048kB,RAM存储2kB~512kB。
产品型号
|
品类
|
系列
|
Frequency(MHz)
|
Flash (kB)
|
RAM (kB)
|
Vdd min(V)
|
Vdd max(V)
|
Package Type
|
Package Size (mm)
|
Internal Osc.
|
Debug Interface
|
Cryptography
|
Dig I/O Pins
|
ADC 1
|
DAC
|
USB
|
Cap Sense
|
LCD
|
Temp Sensor
|
Timers (16-bit)
|
UART
|
USART
|
SPI
|
I2C
|
I2S
|
EMIF
|
RTC
|
Comparators
|
EFM32GG290F512-BGA112
|
32位MCU
|
EFM32 Giant Gecko
|
48
|
512
|
128
|
1.98
|
3.8
|
BGA112
|
10x10
|
±2%
|
ETM; SW
|
AES-128 AES-256
|
90
|
12-bit, 8-ch., 1 Msps
|
12-bit, 2 ch.
|
-
|
Cap Sense
|
-
|
Temp Sensor
|
4
|
7
|
3
|
3
|
2
|
1
|
0
|
RTC
|
2
|
选型表 - SILICON LABS 立即选型
【经验】Silicon Labs 32位MCU EFM32在静电测试时的故障排查
本文介绍Silicon Labs 32位MCU EFM32在做静电测试时,出现复位、死机情况时如何去查找原因
航顺芯片并购32位MCU研发公司成都蓉芯微,将围绕HK32 MCU生态和愿景快速扩张、赋能生态!
航顺芯片经过多年发展后为更快速的人才集聚和弥补核心技术商业化,采取先投资,双方团队磨合后并购32位MCU研发公司成都蓉芯微;将持续布局采取投资控股和并购等方式,围绕航顺HK32 MCU生态和愿景快速扩张赋能生态企业得以更加快速发展。
【经验】Silicon Labs 32位MCU EFM32PG12复位引脚在SWD接口中的重要性
在使用Silicon Labs 32位MCU EFM32PG12时,通常要在PCBA上保留SWD接口以方便程序的下载、调试功能,但为了节省空间,有些用用户不接RESET引脚,这会有潜在的风险。借测试说明复位引脚在SWD接口中的重要性。
国产车规/工业/商业级32位MCU可软硬件兼容STM,航顺芯片出货达2亿颗
航顺芯片以AIOT多核异构HK32MCU为核心,致力于打造无边界生态平台级企业。现已量产ARMCortex-M0、M0+、M3、M4及RISC-V等300余款工业/商业/车规级32位MCU,可软硬件兼容STM,出货达2亿颗,支持定制。
【应用】极海半导体APM32F035主控32位MCU用于医疗离心机,内置12位ADC及运放,支持霍尔补偿
目前医疗离心机用到的单片机也非常多,功能也越来越多集成化,大大降低产品设计的工作。本文推荐极海半导体APM32F035主控32位MCU,该芯片具有M0+内核最高72MHz工作频率,且内置12位的ADC,支持可编程转换分辨率、提高转换速率。
【经验】EFM32系列低功耗32位MCU芯片加密详解
本文主要介绍以Silicon Labs EFM32系列低功耗32位MCU为核心的方案打造加密系统。
【经验】32位MCU EFM32系列在Keil中接收SWO信息的配置步骤
Silicon Labs的32位MCU EFM32系列广泛应用于物联网、智能家居、无线抄表、智能照明、可穿戴设备等领域。在研发过程中会有很多繁杂的调试过程,本文主要介绍如何将Jlink的SWO接口上输出的调试信息在Keil中显示出来。
【应用】高能效极海32位MCU APM32E103用于工业电机控制设计,主频最高120MHz
APM32E103基于32位Arm® Cortex®-M3内核,最高120MHz工作频率。该平台开发成本低、功耗低,可提供优良的计算性能和先进的系统中断响应,兼容所有Arm工具和软件。
电子商城
现货市场
服务
可定制显示屏的尺寸0.96”~15.6”,分辨率80*160~3840*2160,TN/IPS视角,支持RGB、MCU、SPI、MIPI、LVDS、HDMI接口,配套定制玻璃、背光、FPCA/PCBA。
最小起订量: 1000 提交需求>
拥有IC烧录机20余款,100余台设备,可以烧录各种封装的IC;可烧录MCU、FLASH、EMMC、NAND FLASH、EPROM等各类型芯片,支持WIFI/BT模组PCBA烧录、测试。
最小起订量: 1 提交需求>
登录 | 立即注册
提交评论