简述MSP432Pxx-GPIO库的各函数

1,GPIO模式设置,PxDIR寄存器

2,GPIO复用功能配置,PxSEL寄存器

3,GPIO输出电平设置,PxOUT寄存器

4,GPIO输入模式下上/下拉电阻选择,PxREN寄存器

5,GPIO输入读取模式设置,PxIN寄存器

6,GPIO中断模块设置

1,中断使能寄存器PxIE

2,获取选择I/O口上的中断状态

3,清除选择I/O口的中断标志,PxIFG寄存器

4,设置GPIO中断触发沿,PxIES寄存器

5,确保提供的GPIO已经开启中断

6,中断回调函数

7,GPIO驱动强度设置


1,GPIO模式设置,PxDIR寄存器

void GPIO_setAsOutputPin(uint_fast8_t selectedPort,uint_fast16_t selectedPins);
//设置GPIO为输出模式void GPIO_setAsInputPin(uint_fast8_t selectedPort,uint_fast16_t selectedPins);
//设置GPIO为输入模式

可设置的GPIO口可参考库函数注释

2,GPIO复用功能配置,PxSEL寄存器

void GPIO_setAsPeripheralModuleFunctionOutputPin(uint_fast8_t selectedPort,
uint_fast16_t selectedPins,uint_fast8_t mode);
//设置GPIO输出模式下的复用功能void GPIO_setAsPeripheralModuleFunctionInputPin(uint_fast8_t selectedPort,uint_fast16_t selectedPins,uint_fast8_t mode);
//设置GPIO输入模式下的复用功能//!        module function.
//!        Valid values are:
//!        - \b GPIO_PRIMARY_MODULE_FUNCTION
//!        - \b GPIO_SECONDARY_MODULE_FUNCTION
//!        - \b GPIO_TERTIARY_MODULE_FUNCTION

不设置复用功能则为通用I/O口

设置复用功能则有三种可选模式

1,选择主模块功能(GPIO_PRIMARY_MODULE_FUNCTION)

2,选择辅助模块功能(GPIO_SECONDARY_MODULE_FUNCTION)

3,选择第三模块功能(GPIO_TERTIARY_MODULE_FUNCTION)

后两种模式需要选择输出/入模式功能设置来作为不同功能,第一种模式通常不分输入输出

此部分需参考datasheet的6.12节引脚功能配置

3,GPIO输出电平设置,PxOUT寄存器

void GPIO_setOutputHighOnPin(uint_fast8_t selectedPort,uint_fast16_t selectedPins);
//设置GPIO为高电平输出void GPIO_setOutputLowOnPin(uint_fast8_t selectedPort,uint_fast16_t selectedPins);
//设置GPIO为低电平输出void GPIO_toggleOutputOnPin(uint_fast8_t selectedPort,uint_fast16_t selectedPins);
//设置GPIO输出翻转模式,即高低电平循环出现

4,GPIO输入模式下上/下拉电阻选择,PxREN寄存器

void GPIO_setAsInputPinWithPullDownResistor(uint_fast8_t selectedPort,uint_fast16_t selectedPins);
//设置GPIO为输入下拉模式void GPIO_setAsInputPinWithPullUpResistor(uint_fast8_t selectedPort,uint_fast16_t selectedPins);
//设置GPIO为输入上拉模式

I/O口在悬空时收到噪声干扰可能出现不可预知的电平信号,通过上下拉电阻即可将I/O口钳制在确定的电平状态。

5,GPIO输入读取模式设置,PxIN寄存器

uint8_t GPIO_getInputPinValue(uint_fast8_t selectedPort,uint_fast16_t selectedPins);
//读取输入引脚的电平状态

读取GPIO引脚的输入电平

6,GPIO中断模块设置

1,中断使能寄存器PxIE


void GPIO_enableInterrupt(uint_fast8_t selectedPort,uint_fast16_t selectedPins);
//打开中断功能void GPIO_disableInterrupt(uint_fast8_t selectedPort,uint_fast16_t selectedPins);
//关闭中断功能

2,获取选择I/O口上的中断状态

uint_fast16_t GPIO_getInterruptStatus(uint_fast8_t selectedPort,uint_fast16_t selectedPins);
//获取选择I/O口上的中断状态

只有P1,P2,PA三个端口具有此功能

3,清除选择I/O口的中断标志,PxIFG寄存器


void GPIO_clearInterruptFlag(uint_fast8_t selectedPort,uint_fast16_t selectedPins);
//清除选择I/O口的中断标志

只有P1,P2,PA三个端口具有此功能

4,设置GPIO中断触发沿,PxIES寄存器

void GPIO_interruptEdgeSelect(uint_fast8_t selectedPort,uint_fast16_t selectedPins,  uint_fast8_t edgeSelect);
//设置GPIO中断触发沿

可选择GPIO_LOW_TO_HIGH_TRANSITION即上升沿

或GPIO_HIGH_TO_LOW_TRANSITION即下降沿

5,确保提供的GPIO已经开启中断

uint_fast16_t GPIO_getEnabledInterruptStatus(uint_fast8_t selectedPort);
//

获取开启的中断状态标志

6,中断回调函数


void GPIO_registerInterrupt(uint_fast8_t selectedPort,void (*intHandler)(void));
//绑定中断时执行的函数void GPIO_unregisterInterrupt(uint_fast8_t selectedPort);
//解绑中断时执行的函数

7,GPIO驱动强度设置

void GPIO_setDriveStrengthHigh(uint_fast8_t selectedPort,uint_fast8_t selectedPins);
//设置GPIO为全驱动模式void GPIO_setDriveStrengthLow(uint_fast8_t selectedPort,uint_fast8_t selectedPins);
//设置GPIO为欠驱动模式

全驱动模式可提高带载能力,最大输出电流可达20mA

可设置为全驱动模式的I/O口有P2.0~P2.3

欠驱动则为通用模式

MSP432库函数学习笔记-GPIO相关推荐

  1. MSP432库函数学习笔记-UART

    目录 MSP432工作框图 UART初始化 UART使能 UART数据传输 UART休眠 UART状态查询 UART中断使能 UART中断状态查询和中断处理 UART字符串传输 MSP432工作框图 ...

  2. MSP432库函数学习笔记-CS

    CS库为clock system即系统时钟配置 此函数库需要系统时钟的基础,可参看我之前的博客MSP432-系统时钟简介 目录 时钟初始化设置 时钟请求模块 获取各时钟源频率 DCO数控时钟源频率设置 ...

  3. RT-1052学习笔记 - GPIO架构分析

    RT-1052学习笔记 - GPIO架构分析 一.RT1052之GPIO与IOMUX 二.GPIO架构分析 分析GPIO的外设框架 库函数操作 1.初始化MUX 2.初始化PAD 3.初始化GPIO外 ...

  4. STM32学习笔记---GPIO

    STM32的学习笔记-GPIO 我使用的是STM32F401ZGT6,有7组IO口,每组16个引脚,共112个引脚. 因为太菜了,确实容易出错,还请赐教 参考官方文档:八种IO口模式区别 结构原理 该 ...

  5. 华芯微特SWM181学习笔记--GPIO应用与环境搭建

    华芯微特SWM181 系列 32 位 MCU(以下简称 SWM181)内嵌 ARM® CortexTM-M0 内核, SWM181 支持片上包含精度为 1%以内的 24MHz.48MHz 时钟,并提供 ...

  6. 新唐芯片学习笔记——GPIO

    新唐芯片学习笔记--GPIO 概述 NuMicro®NUC029 最多有40个通用I/O引脚,这些引脚和其它功能共享.40个引脚分为6个端口,分别命名为P0, P1, P2, P3, P4和P5,每个 ...

  7. 树莓派学习笔记——GPIO功能学习

    0.前言 树莓派现在越来越火,网上树莓派的资料也越来越多.树莓派源自英国,国外嵌入式开源领域具有良好的分享精神,树莓派各种集成库也层出不穷,下面推荐几个. [ python GPIO ] [开发语言] ...

  8. 立创梁山派学习笔记——GPIO输出控制

    梁山派 前言 开发板简介 GD32F407ZGT6官方资源 数据手册 1.系统框图 2. 引脚复用表 3.命名规则 4.其他 用户手册 固件库与PACK包 开发环境搭建 立创官方的资料包 资料齐活,开 ...

  9. STM32学习笔记——GPIO,点灯之路第一步

    学习B站上江科大stm32教学视频作的笔记 本文将从工作原理和相关固件库函数来介绍GPIO. 工作原理 GPIO简介 GPIO,(General-purpose input/output),是由STM ...

最新文章

  1. ETC带火车牌识别设备 多方企业狭路相逢
  2. 【清北前紧急补课3】水题集锦
  3. 在AWS中部署OpenShift平台
  4. Ubuntu 12.04 MySQL改utf-8 启动不了
  5. window下tomcat的内存溢出问题
  6. Java™ 教程(Queue接口)
  7. 卡尔曼滤波器学习笔记(二)
  8. 从部署 httpd 入手,理清 k8s 配置中的 containerPort、port、nodePort、targetPort
  9. iOS--控制器加载自定义view的xib
  10. 电信单线实现上网加看电视 HS8145V +K2P华硕固件
  11. 在c语言程序中添加背景音乐,怎么给你的C语言程序添加BGM背景音乐?
  12. Python seaborn 条形图
  13. Serenity框架官方文档翻译(1-2开始、安装和界面)
  14. 霹雳吧啦Wz语义分割学习笔记P8
  15. 让用户做主 为IBM再造存储铺路?
  16. 信奥学习规划 信息学竞赛之路(2022.07.31)
  17. PCA9685--16路 PWM模块舵机驱动板--STM32 IIC接口模块
  18. centos6.2安装Opera
  19. css硬件加速_CSS动画的硬件加速简介
  20. redis基本操作与Java连接

热门文章

  1. 闲鱼高效投放背后的秘密——鲲鹏
  2. java数组长度为0和数组为null
  3. mysql源码分析_MySQL · 源码分析 · 词法分析及其性能优化
  4. mysql insert 源码_MySQL insert源码走读
  5. 使用matlab批量读写tiff图像
  6. nodeJS如何快速升级降级?
  7. 以联名为文化致敬!HCK哈士奇×小王子 复古小冰箱即将上线!
  8. 关于tigase-server在ubuntu20.04上的配置并使用
  9. 电气工程及其自动化和计算机科学与技术考研,电气工程及自动化专业考研可以选什么相近专业?...
  10. Python机器学习算法之支持向量机算法