配置时钟:

void CMU_ClockEnable(CMU_Clock_TypeDef clock, bool enable)

CMU_ClockEnable(cmuClock_HFPER, true);

/* Enable GPIO in CMU */
CMU_ClockEnable(cmuClock_GPIO, true);

配置引脚为输入:

void GPIO_PinModeSet(GPIO_Port_TypeDef port,
unsigned int pin,
GPIO_Mode_TypeDef mode,
unsigned int out) /* Configure PB9 and PB10 as input */
GPIO_PinModeSet(gpioPortB, , gpioModeInput, );
GPIO_PinModeSet(gpioPortB, , gpioModeInput, );

配置引脚为输出:

void GPIO_PinModeSet(GPIO_Port_TypeDef port,
unsigned int pin,
GPIO_Mode_TypeDef mode,
unsigned int out) GPIO_PinModeSet(ledArray[ledNo].port, ledArray[ledNo].pin, gpioModePushPull, );

配置引脚为中断输入:

中断初始化:

void GPIOINT_Init(void)
{
NVIC_ClearPendingIRQ(GPIO_ODD_IRQn);   //清除奇数引脚中断标志
NVIC_EnableIRQ(GPIO_ODD_IRQn); //使能奇数引脚中断
NVIC_ClearPendingIRQ(GPIO_EVEN_IRQn);  //清除偶数引脚中断标志
NVIC_EnableIRQ(GPIO_EVEN_IRQn); //使能偶数引脚中断
}

先配置为输入,再配置中断

__STATIC_INLINE void GPIO_IntConfig(GPIO_Port_TypeDef port,
unsigned int pin,
bool risingEdge,
bool fallingEdge,
bool enable) /* Set falling edge interrupt for both ports */
GPIO_IntConfig(gpioPortB, , false, true, true);
GPIO_IntConfig(gpioPortB, , false, true, true);

引脚输出高电平:

__STATIC_INLINE void GPIO_PinOutSet(GPIO_Port_TypeDef port, unsigned int pin)

GPIO_PinOutSet(ledArray[ledNo].port, ledArray[ledNo].pin);

引脚输出低电平:

__STATIC_INLINE void GPIO_PinOutClear(GPIO_Port_TypeDef port, unsigned int pin)

GPIO_PinOutClear(ledArray[ledNo].port, ledArray[ledNo].pin);

引脚翻转输出电平:

__STATIC_INLINE void GPIO_PinOutToggle(GPIO_Port_TypeDef port, unsigned int pin)

GPIO_PinOutToggle(ledArray[ledNo].port, ledArray[ledNo].pin);

读取输出引脚电平:

__STATIC_INLINE unsigned int GPIO_PinOutGet(GPIO_Port_TypeDef port,
unsigned int pin) retVal = (int)GPIO_PinOutGet(ledArray[ledNo].port, ledArray[ledNo].pin);

读取输入引脚电平:

__STATIC_INLINE unsigned int GPIO_PinInGet(GPIO_Port_TypeDef port,
unsigned int pin)

读取输入端口:

__STATIC_INLINE uint32_t GPIO_PortInGet(GPIO_Port_TypeDef port)

EFM32之GPIO的更多相关文章

  1. Programming Internal Flash Over the Serial Wire Debug <SWD> Interface -- EFM32

    1 Debug Interface Overview 1.1 Serial Wire Debug Serial Wire Debug (SWD) is a two-wire protocol for ...

  2. EFM32 DMA/PRS例程

    /**************************************************************************//**  * @file  * @brief H ...

  3. [转]: stm328种GPIO模式

    [原创]:这段时间开始研究stm32,今天撸着一段代码一直追,追到了GPIO口模式的枚举类型这里,遂去网上查看这8种模式到底是什么,网上一查,看到了一个答案被很多博主转载或者原创,那我也就不重复废话了 ...

  4. 基於tiny4412的Linux內核移植--- 中斷和GPIO學習(3)

    作者 彭東林 pengdonglin137@163.com 平臺 tiny4412 ADK Linux-4.4.4 u-boot使用的U-Boot 2010.12,是友善自帶的,爲支持設備樹和uIma ...

  5. 基於tiny4412的Linux內核移植--- 中斷和GPIO學習(2)

    作者 彭東林 pengdonglin137@163.com 平臺 tiny4412 ADK Linux-4.4.4 u-boot使用的U-Boot 2010.12,是友善自帶的,爲支持設備樹和uIma ...

  6. 基於tiny4412的Linux內核移植--- 中斷和GPIO學習(1)

    作者 彭東林 pengdonglin137@163.com 平臺 tiny4412 ADK Linux-4.4.4 u-boot使用的U-Boot 2010.12,是友善自帶的,爲支持設備樹和uIma ...

  7. STM32f10xxx 之 GPIO口配置

    背景 配置stm32f103使其完成PWM输出的过程中,在配置GPIO口的时候,按照习惯配置GPIO口的speed为50MHZ,突然就意识到,为什么大部分例程习惯配置为50MHZ,而不是其它值,即有了 ...

  8. android gpio口控制

    android gpio口控制  GPIO口控制方式是在jni层控制的方式实现高低电平输出,类似linux的控制句柄方式,在linux系统下将每个设备看作一个文件,android系统是基于linux内 ...

  9. STM32F412应用开发笔记之二:基本GPIO控制

    NUCLEO-F412ZG板子上的元器件并没有完全焊接,除去ST-LINK部分和电源部分后,还有用一个USB主机接口,三个LED灯和两个按钮,不过很多功能引脚都已经引到了插针.查看原理图可发现,由原理 ...

随机推荐

  1. VMware Workstation Pro 安装win7系统

    1.准备工作VMware Workstation Pro 虚拟机软件cn_windows_7_enterprise_x64_dvd_x15-70741.iso2.选择典型(推荐)(T) 单选按钮 3. ...

  2. I.MX 6UL与6ULL应用领域区别

  3. form表单图片上传

    1.前端页面 <div class="tkDiv" id="addLOGO" style="display:none;z-index:12;wi ...

  4. innobackupex一些常用备份选项

    指定数据库备份[root@node1]# innobackupex --defaults-file=/data/3306/my.cnf --user=root --password=password ...

  5. java-使用Jacob实现office转换成pdf

    参考路径: https://blog.csdn.net/csdnFlyFun/article/details/79523262#commentBox Jacob组件下载地址:https://sourc ...

  6. Btrace 拦截构造函数,同名函数

    拦截方法: 1.普通方法  @OnMethod(clazz="", method="") 2.构造函数@OnMethod(claszz="" ...

  7. windows下使用caffe测试mnist数据集

    在win10机子上装了caffe,感谢大神们的帖子,要入坑caffe-windows的朋友们看这里,还有这里,安装下来基本没什么问题. 好了,本博文写一下使用caffe测试mnist数据集的步骤. 1 ...

  8. Qt控制流简析

    前言: Qt库及其绑定python语言的PySide库.PyQt库在圈中已经是TD的标配了,Qt提供了多种快速绘制图形窗口的方式.但正是因为这个原因,导致很多TD局限在设计窗口外观的桎梏中,而忽略了Q ...

  9. Linux下阅读源代码工具安装

    综合他们多篇博客,做一个自己的总结(从0开始,记录过程) 系统:ubuntu 16.04  vim:7.4.1689 内容来源: https://www.cnblogs.com/wangzhe1635 ...

  10. python判断平台

    网上找到的判断平台的方法,特此记录 # -*- coding: utf-8 -*- import platform osName = platform.system() if(osName == 'W ...