MSP432库函数学习笔记-GPIO
简述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相关推荐
- MSP432库函数学习笔记-UART
目录 MSP432工作框图 UART初始化 UART使能 UART数据传输 UART休眠 UART状态查询 UART中断使能 UART中断状态查询和中断处理 UART字符串传输 MSP432工作框图 ...
- MSP432库函数学习笔记-CS
CS库为clock system即系统时钟配置 此函数库需要系统时钟的基础,可参看我之前的博客MSP432-系统时钟简介 目录 时钟初始化设置 时钟请求模块 获取各时钟源频率 DCO数控时钟源频率设置 ...
- RT-1052学习笔记 - GPIO架构分析
RT-1052学习笔记 - GPIO架构分析 一.RT1052之GPIO与IOMUX 二.GPIO架构分析 分析GPIO的外设框架 库函数操作 1.初始化MUX 2.初始化PAD 3.初始化GPIO外 ...
- STM32学习笔记---GPIO
STM32的学习笔记-GPIO 我使用的是STM32F401ZGT6,有7组IO口,每组16个引脚,共112个引脚. 因为太菜了,确实容易出错,还请赐教 参考官方文档:八种IO口模式区别 结构原理 该 ...
- 华芯微特SWM181学习笔记--GPIO应用与环境搭建
华芯微特SWM181 系列 32 位 MCU(以下简称 SWM181)内嵌 ARM® CortexTM-M0 内核, SWM181 支持片上包含精度为 1%以内的 24MHz.48MHz 时钟,并提供 ...
- 新唐芯片学习笔记——GPIO
新唐芯片学习笔记--GPIO 概述 NuMicro®NUC029 最多有40个通用I/O引脚,这些引脚和其它功能共享.40个引脚分为6个端口,分别命名为P0, P1, P2, P3, P4和P5,每个 ...
- 树莓派学习笔记——GPIO功能学习
0.前言 树莓派现在越来越火,网上树莓派的资料也越来越多.树莓派源自英国,国外嵌入式开源领域具有良好的分享精神,树莓派各种集成库也层出不穷,下面推荐几个. [ python GPIO ] [开发语言] ...
- 立创梁山派学习笔记——GPIO输出控制
梁山派 前言 开发板简介 GD32F407ZGT6官方资源 数据手册 1.系统框图 2. 引脚复用表 3.命名规则 4.其他 用户手册 固件库与PACK包 开发环境搭建 立创官方的资料包 资料齐活,开 ...
- STM32学习笔记——GPIO,点灯之路第一步
学习B站上江科大stm32教学视频作的笔记 本文将从工作原理和相关固件库函数来介绍GPIO. 工作原理 GPIO简介 GPIO,(General-purpose input/output),是由STM ...
最新文章
- ETC带火车牌识别设备 多方企业狭路相逢
- 【清北前紧急补课3】水题集锦
- 在AWS中部署OpenShift平台
- Ubuntu 12.04 MySQL改utf-8 启动不了
- window下tomcat的内存溢出问题
- Java™ 教程(Queue接口)
- 卡尔曼滤波器学习笔记(二)
- 从部署 httpd 入手,理清 k8s 配置中的 containerPort、port、nodePort、targetPort
- iOS--控制器加载自定义view的xib
- 电信单线实现上网加看电视 HS8145V +K2P华硕固件
- 在c语言程序中添加背景音乐,怎么给你的C语言程序添加BGM背景音乐?
- Python seaborn 条形图
- Serenity框架官方文档翻译(1-2开始、安装和界面)
- 霹雳吧啦Wz语义分割学习笔记P8
- 让用户做主 为IBM再造存储铺路?
- 信奥学习规划 信息学竞赛之路(2022.07.31)
- PCA9685--16路 PWM模块舵机驱动板--STM32 IIC接口模块
- centos6.2安装Opera
- css硬件加速_CSS动画的硬件加速简介
- redis基本操作与Java连接
热门文章
- 闲鱼高效投放背后的秘密——鲲鹏
- java数组长度为0和数组为null
- mysql源码分析_MySQL · 源码分析 · 词法分析及其性能优化
- mysql insert 源码_MySQL insert源码走读
- 使用matlab批量读写tiff图像
- nodeJS如何快速升级降级?
- 以联名为文化致敬!HCK哈士奇×小王子 复古小冰箱即将上线!
- 关于tigase-server在ubuntu20.04上的配置并使用
- 电气工程及其自动化和计算机科学与技术考研,电气工程及自动化专业考研可以选什么相近专业?...
- Python机器学习算法之支持向量机算法