嵌入式系统:GPIO

GPIO

通用输入输出端口

GPIO是MCU与外部接触的唯一接口,外部设备通过GPIO与MCU之间通信

在这里插入图片描述


(一)输入输出模块

1.输入模块(input driver)

(1)浮空输入

(2)上拉输入

(3)下拉输入

(4)模拟输入

2.输出模块(output driver)

(1)推挽输出

(2)推挽复用输出

(3)开漏输出

(4)推挽开漏输出


拉电流与灌电流

(1)拉电流:GPIO输出电流,电流方向从引脚向外流

(2)灌电流:GPIO输入电流,电流方向从外向引脚流

因此,IO口尽量输出低电平,灌电流,因为IO口拉电流能力有限,拉电流过大时,IO驱动能力不足


TTL肖特耐触发器:将模拟信号转换为数字信号

上下拉电阻:起到一个钳位的作用,在引脚悬空时有个确切的电平

推挽与开漏

(1)推挽:两个三极管按照推挽模式连接(串联),可以输出高、低电平

在这里插入图片描述

  • 输出为1时,T1导通,T2截止,输出高电平
  • 输出为0时,T2导通,T1截止,输出低电平

(2)开漏:MOS管的漏极被开路,输出低电平 ,需外接上拉电阻实现高电平
在这里插入图片描述

  • 输出为1时,MOS管截止,外接上拉电阻输出高电平
  • 输出为0时,MOS管导通,输出为低电平

保护二极管:限流的作用,防止电流过大,引脚被损坏


(二)GPIO模块寄存器

1.控制寄存器:配置GPIO工作模式

(1)时钟配置

(2)工作模式配置

  • 输入/输出模式
  • 输入上下拉配置
  • 输入中断配置

2.数据寄存器:输入/输出数据缓冲器

(1)输入数据寄存器(只读)

(2)输出数据寄存器


3.功能复用寄存器:根据使用外设的引脚配置为相应的复用模式


(三)GPIO配置流程

1.根据所需功能选择相应的引脚

(1)端口选择

(2)引脚选择

2.根据所需功能配置引脚相应工作模式

(1)输入/输出模式/功能复用

(2)输入中断,需配置引脚相关中断


(四)编程

1.寄存器版本

#include "msp.h"
#include "driverlib.h"

int main()
{
	WDT_A->CTL = WDT_A_CTL_PW | WDT_A_CTL_HOLD;
	//GPIO为普通IO模式
	P1SEL0 &= ~BIT0;
	P1SEL1 &= ~BIT0;
	//GPIO为输出模式
	P1DIR |= BIT0;
	//IO输出为1
	P1OUT |= BIT0;

	while(1);
	return 0;
}

2.库函数版本

#include "msp.h"
#include "driverlib.h"

int main()
{
	WDT_A_holdTimer();
	
	//GPIO为输出模式
	GPIO_setAsOutputPin(GPIO_PORT_P1,GPIO_PIN0);
	//IO输出为1
	GPIO_setOutputHighOnPin(GPIO_PORT_P1,GPIO_PIN0);

	while(1);
	return 0;
}
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值