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

欠驱动则为通用模式

  • 20
    点赞
  • 80
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MSP432 低功耗高性能并存10.1 Digital I/O Introduction The digital I/O features include: • Independently programmable individual I/Os • Any combination of input or output • Individually configurable interrupts for ports (available for certain ports only) • Independent input and output data registers • Individually configurable pullup or pulldown resistors • Wake-up capability from ultra-low power modes (available for certain ports only) • Individually configurable high drive I/Os (available for certain I/Os only) Devices within the family may have up to eleven digital I/O ports implemented (P1 to P10 and PJ). Most ports contain eight I/O lines; however, some ports may contain less (see the device-specific data sheet for ports available). Each I/O line is individually configurable for input or output direction, and each can be individually read or written. Each I/O line is individually configurable for pullup or pulldown resistors. Certain ports have interrupt and wake-up capability from ultra-low power modes (see device specific data sheet for ports with interrupt and wake-up capability). Each interrupt can be individually enabled and configured to provide an interrupt on a rising or falling edge of an input signal. All interrupts are fed into an encoded Interrupt Vector register, allowing the application to determine which sub-pin of a port has generated the event. Individual ports can be accessed as byte-wide ports or can be combined into half-word-wide ports. Port pairs P1 and P2, P3 and P4, P5 and P6, P7 and P8, and so on, are associated with the names PA, PB, PC, PD, and so on, respectively. All port registers are handled in this manner with this naming convention. The main exception are the interrupt vector registers, for example, interrupts for ports P1 and P2 must be handled through P1IV and P2IV, PAIV does not exist. When writing to port PA with half-word operations, all 16 bits are written to the port. When writing to the lower byte of port PA using byte operations,
MSP432库函数是用于开发MSP432微控制器的函数。要使用MSP432库函数,首先需要下载并安装CCS(Code Composer Studio)开发工具。CCS是由德州仪器(Texas Instruments)公司提供的代码开发和调试套件。可以从TI官网下载CCS并按照安装指南进行安装\[1\]。 在CCS中创建一个新的MSP432项目后,可以下载MSP432库函数。可以从TI官网下载MSP432库函数,并解压缩文件\[2\]。然后,在CCS中右键单击项目文件,选择"Add Existing Files",将下载的函数文件添加到项目中\[3\]。 通过部署函数,可以在CCS项目中使用MSP432库函数。在CCS中右键单击项目文件,选择"Add New",然后创建一个名为"driverlib"的新文件。将下载的函数文件添加到"driverlib"文件中\[3\]。 通过以上步骤,就可以在CCS中使用MSP432库函数进行开发了。MSP432库函数提供了一系列函数和工具,可以帮助开发者更方便地编写和调试MSP432微控制器的应用程序。 #### 引用[.reference_title] - *1* *2* [安装TI_MSP432和导入CCS工程](https://blog.csdn.net/weixin_42717467/article/details/115005171)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [MSP430F5529基于CCS库函数开发——软件安装与库函数配置](https://blog.csdn.net/weixin_44098974/article/details/125686172)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值