MSP432库函数学习笔记-GPIO

这篇具有很好参考价值的文章主要介绍了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

欠驱动则为通用模式文章来源地址https://www.toymoban.com/news/detail-575575.html

到了这里,关于MSP432库函数学习笔记-GPIO的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MSP432学习笔记6:中断优先级管理

    所用型号:MSP432P401R 今日继续我的MSP432电赛速通之路。 主要学习的是: 中断优先级管理、软件挂起中断、屏蔽中断优先级 目录 MSP432具有8级可编程的中断优先级。  中断优先级管理库函数:

    2024年02月05日
    浏览(51)
  • MSP432学习笔记4:时钟与滴答计时器

    所用单片机型号:MSP432P401r 今日继续更新我的MSP432电赛速通笔记: 提示: 本节内容相当于讲述delay_ms() 和delay_us() 俩延时函数的由来, 所以不需要花费过多时间斟酌 MSP432单片机各部件能在有条不紊地自动工作,实际上是在其系统时钟作用下,由CPU指挥芯片内各个部件自

    2024年02月16日
    浏览(58)
  • MSP432学习笔记9:定时器A-----捕获

    今日得以继续我的MSP432电赛速通之旅~~~ 目录 基础知识: 相关库函数: 一般配置步骤: 首先定义一个初始化函数:

    2024年02月07日
    浏览(54)
  • MSP432学习笔记7:定时器A中断

    型号:MSP432P401r 今日得以继续我的MSP432电赛速通学习之路...... 今日学习的是定时器A中断! 目录 基础工程在此下载: 更改后的实验演示工程在此下载: 定时器A基础介绍:

    2024年02月09日
    浏览(48)
  • MSP432学习笔记14:定时器A的学习整理

    本文整理学习一下定时器A的相关基础知识,本文比较偏向理解与理论性, 主要是深入在官方手册层面进行对定时器A的深入研究,定时器 A的相关实践基本上在之前的文章中都有提及: 1.定时器A定时中断: MSP432学习笔记7:定时器A_定时中断_msp432时钟_NULL指向我的博客-CSDN博客

    2024年02月16日
    浏览(52)
  • MSP432学习笔记10:串口接收字符串命令并执行任务

    今日终于得以继续我的MSP432电赛速通之路: 串口通信是单片机需要学习深入的一个很重要的板块,通过串口,我们可以实现许多数据收发与调试工作,可谓是非常方便快捷。 今日就跟随我的脚步,逐步扎实地学习 如何编程MSP432串口接收字符串命令 ,并使其执行一些任务,

    2024年02月10日
    浏览(78)
  • MSP432学习笔记8:定时器A_PWM驱动舵机

    开发板型号:MSP432P401r 今日得以继续我的MSP432电赛速通之路,文首提供本次学习实践项目文件。 注:我笔记实践都是从原始空项目工程文件开始配置的。 有道是        —_—_—_—_— “山无重数周遭碧,花不知名分外娇”    “曲中人不见,江上数峰青” ......... 连绵不

    2024年02月15日
    浏览(40)
  • MSP430F5529 DriverLib 库函数I2C驱动OLED屏幕

    平台:Code Composer Studio 10.4.0 MSP430F5529 LaunchPad™ Development Kit (MSP‑EXP430F5529LP) P3.0为SDA,P3.1为SCL OLED.c OLED.h OLED_Font.h

    2024年02月15日
    浏览(39)
  • MSP432学习01--新建keil空工程

            为了准备电赛和深入学习嵌入式编程为后面研究FOC电机驱动做准备,入手了一块TI的MSP432P4开发板,在这里开一个系列博文来记录学习过程方便复习:         首先是在keil里创建新工程项目,因为之前的项目用的都是keil开发平台,所以这次准备创建一个空工程以

    2024年02月16日
    浏览(42)
  • MSP432自主开发笔记4:DS3115舵机的0~180全角度驱动

    芯片使用:MSP432P401R. 今日学习一款全角度15KG大扭力舵机的驱动,最近电赛学习任务紧,更新一篇比较水的文章: 文章提供原理解释,全部代码,整体工程: 目录 舵机驱动原理: 这是舵机DS3115MG: 全角度反馈编程设计: 初始化定时器TA3: 设计转角函数: 整体测试工程下载:

    2024年02月15日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包