资源预览内容
第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
亲,该文档总共5页全部预览完了,如果喜欢就下载吧!
资源描述
欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档! EFM32TG (GPIO) GPIO(General PurposeInput/Output ,通用输入输出接口)即单片机的输入输出角,单片机的功能最终对外的控制和检测功能都是通过 GPIO 来实现,当为输出角有高低电平,PWM,DA 等输出,当为输入角可检测电平,AD 等信号。GPIO 是单片机控制基础的模块,要了解 EFM32TG 系列,首先让我们先从 GPIO开始入手吧。 EFM32T 系列的 GPIO 最多可有 6 组分别是 PA,PB,PC,PE,PD,PF,每一个组最多 16 个 GPIO 既 Px.0 Px.15。从芯片设计上看 EFM32T 的 GPIO 最多可以有 6X16=96 个,但是实际根据针对市场和封装的不同EFM32T 用不到那么多 GPIO,下表了解 EFM32T 系列的 GPIO 角数: 现在来看看 EFM32T 系列的 GPIO 的寄存器,每组都有 9 个 32 位寄存器可 GPIO 进行不同设置: GPIO_Px_CTRL Port Control Register GPIO_Px_MODEL Port Pin Mode Low Register GPIO_Px_MODEH Port Pin Mode High Register GPIO_Px_DOUT Port Data Out Register GPIO_Px_DOUTSET Port Data Out Set Register GPIO_Px_DOUTCLR Port Data Out Clear Register GPIO_Px_DOUTTGL Port Data Out Toggle Register GPIO_Px_DIN Port Data In Register GPIO_Px_PINLOCKN Port Unlocked Pins Register GPIO_Px_CTRL 231 不可用,0 和 1 位可设置每组 16 个 GPIO 共性驱动电流。 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!GPIO_Px_MODEL GPIO_Px_MODEH 此两个寄存器共有 64 位,每 4 位可以设置一个 GPIO 的模式,每组 16 个 GPIO 皆通过其设置模式。 GPIO_Px_MODEL 的 03 位是 Px.0 2831 位是 Px.7 设置模式, GPIO_Px_MODEH 的 03 位是 Px.8 2831 位是 Px.15 设置模式。 每个 GPIO 有 16 种模式,通过 4 位来进行设置 Value Mode Description 0 DISABLED Input disabled. Pullup if DOUT is set. (默认为输出) 1 INPUT Input enabled. Filter if DOUT is set (设为输入) 2 INPUTPULL Input enabled. DOUT determines pull direction(设为带上 拉输入) 3 INPUTPULLFILTER Input enabled with filter. DOUT determines pull direction (设为带上拉和滤波输入) 4 PUSHPULL Push-pull output(设为推挽输出) 5 PUSHPULLDRIVE Push-pull output with drive-strength set by DRIVEMODE 6 WIREDOR Wired-or output.; 7 WIREDORPULLDOWN Wired-or output with pull-down 8 WIREDAND Open-drain output 9 WIREDANDFILTER Open-drain output with filter 10 WIREDANDPULLUP Open-drain output with pullup 11 WIREDANDPULLUPFILTER Open-drain output with filter and pullup 12 WIREDANDDRIVE Open-drain output with drive-strength set by DRIVEMODE 13 WIREDANDDRIVEFILTER Open-drain output with filter and drive-strength set by DRIVEMODE 14 WIREDANDDRIVEPULLUP Open-drain output with pullup and drive-strength set by DRIVEMODE 15 WIREDANDDRIVEPULLUPFILTER Open-drain output with filter, pullup and drive-strength set by DRIVEMODE GPIO_Px_DOUT 每组上的输出的 GPIO 的状态。015 位对 Px.0 Px.15。 GPIO_Px_DOUTCLR 当寄存器的位设置为 1 时对应的 GPIO 位输出高,写 0 端口无改变,015 位对 Px.0 Px.15。 GPIO_Px_DOUTCLR 当寄存器的位设置为 1 时对应的 GPIO 位输出低,写 0 端口无改变,015 位对 Px.0 Px.15。 GPIO_Px_DOUTTGL 当寄存器的位设置为 1 时对应的 GPIO 位输出反转,写 0 端口无改变,015 位对 Px.0 Px.15。 GPIO_Px_DIN 每组上的输入的 GPIO 的状态。015 位对 Px.0 Px.15。 GPIO_Px_PINLOCKN 对应位为 0 时锁定 GPIO 当前状态,015 位对 Px.0 Px.15。 上面介绍的 GPIO 组和 GPIO 进行操作和设置的,下面再介绍 GPIO 共性的一些寄存器: GPIO_EXTIPSELL GPIO_EXTIPSELH 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!同过此对寄存器可设置外部 14 个中断角位分布: GPIO_EXTIPSELL的 02位是EXTIPSEL1,46位是EXTIPSEL2,810位是EXTIPSEL3,2830位是EXTIPSEL7,GPIO_EXTIPSELL可是设置地位1-7的7个外部中断角位。 GPIO_EXTIPSELH的 02位是EXTIPSEL8,46位是EXTIPSEL9,810位是EXTIPSEL10,2830位是EXTIPSEL14,GPIO_EXTIPSELH可是设置地位8-14的7个外部中断角位。 EXTIPSELx对应3位操走入下表 Value Mode Description 0 PORTA Port A pin x selected for external interrupt x 1 PORTB Port B pin x selected for external interrupt x 2 PORTC Port C pin x selected for external interrupt x 3 PORTD Port D pin x selected for external interrupt x 4 PORTE Port E pin x selected for external interrupt 7 5 PORTF Port F pin x selected for external interrupt x GPIO_EXTIRISE 对应位为1的时候, 设置外部中断角上升沿触发。 GPIO_EXTIFALL 对应位为1的时候, 设置外部中断角下降沿严触发。 GPIO_IEN 对应位为1的时候, 使能对应的外部中断。 GPIO_IF 对应位为1的时候, 使能对应的外部中断标志位,为0时,清除外部中断标志位。 GPIO_IFS 对应位为1的时候, 使能对应的外部中断标志位,为0时,无改变。 GPIO_IFC 对应位为1的时候, 清除对应的外部中断标志位,为0时,无改变。 GPIO_ROUTE 决定是否复用调试角SWCLK和SWDIO,默认是复用。 GPIO_LOCK 写任何数值将锁定MODEL, MODEH, CTRL, PINLOCKN, EPISELL, EIPSELH, INSENSE 和 SWDPROUTE寄存器,这些寄存器将不能进行操作,当写入0xA534即可解锁。 GPIO_CTRL EM4是使能外部边沿唤醒 GPIO_CMD 首位写1,清除外部边沿EM4唤醒 GPIO_EM4WUEN 对应位写1时使能相应外部EM4唤醒,写0时清除EM4唤醒。 Value Mode Description 0x01 A0 Enable em4 wakeup on pin A0 0x02 A6 Enable em4 wakeup on pin A6 0x04 C9 Enable em4 wakeup on pin C9 0x08 F1 Enable em4 wakeup on pin F1 0x10 F2 Enable em4 wakeup on pin F2 0x20 E13 Enable em4 wakeup on pin E13 欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档!欢迎您阅读并下载本文档,本文档来源于互联网,如有侵权请联系删除!我们将竭诚为您提供优质的文档! while (msTicks - curTicks) dlyTicks) ; /*/* * brief Main function */ int main(void) /* Chip errata */ CHIP_Init(); /* If first word of user data page is non-zero, enable eA Profiler trace */ BSP_TraceProfilerSetup(); /* Setup SysTick Timer for 1 msec interrupts */ if (SysTick_Config(CMU_ClockFreqGet(cmuClock_CORE) / 1000) while (1) ; /* Initialize LED driver */ BSP_LedsInit(); /* Infinite blink loop */ while (1) BSP_LedToggle(0); Delay(100);
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号