当前位置:网站首页>嵌入式系统:GPIO
嵌入式系统:GPIO
2022-08-03 21:53:00 【TUTUATM】
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;
}
边栏推荐
- 字节跳动软件测试岗,前两面过了,第三面HR天坑,结局透心凉...
- XSS practice - cycle and two cycle problem at a time
- 一文带你了解软件测试是干什么的?薪资高不高?0基础怎么学?
- CAS: 773888-45-2_BIOTIN ALKYNE_Biotin-alkynyl
- XSS测试
- 《QDebug 2022年7月》
- 386. Lexicographical Numbers
- CAS:1797415-74-7_TAMRA-Azide-PEG-Biotin
- 4. 模块化编程
- C. awoo‘s Favorite Problem--Educational Codeforces Round 130 (Rated for Div. 2)
猜你喜欢

CAS:908007-17-0_Biotin-azide_Biotin azide

CAS:122567-66-2_DSPE-生物素_DSPE-Biotin

XSS线上靶场---haozi

一文带你了解软件测试是干什么的?薪资高不高?0基础怎么学?

AI首席架构师13-AICA-智能文档分析技术在行业场景中的应用

IO线程进程->线程同步互斥机制->day6

易基因|RNA m5C甲基化测序(RNA-BS)技术介绍

YOLO之父宣布退出CV界,坦言无法忽视自己工作带来的负面影响

嵌入式开发:嵌入式基础——代码和数据空间揭秘
![[kali-vulnerability scanning] (2.1) Nessus lifts IP restrictions, scans quickly without results, and plugins are deleted (middle)](/img/93/0b78b6a930380aeecfbbb156df7498.png)
[kali-vulnerability scanning] (2.1) Nessus lifts IP restrictions, scans quickly without results, and plugins are deleted (middle)
随机推荐
三年黑盒测试工程师对嵌入式软件测试的理解
C. Fishingprince Plays With Array--Codeforces Global Round 21
一体化HTAP数据库如此难,为什么他们还要做?
CAS:1797415-74-7_TAMRA-Azide-PEG-Biotin
MMA安装及使用优化
距LiveVideoStackCon 2022 上海站开幕还有3天!
488. Zuma Game
21天打卡挑战学习MySQL——《Window下安装MySql》第一周 第三篇
研究Fabric中Etcd的Raft应用
AI首席架构师13-AICA-智能文档分析技术在行业场景中的应用
LVS负载均衡集群
小朋友学C语言(1):Hello World
21天打卡挑战学习MySQL——《MySQL工具的使用》第一周 第二篇
buildscript和allprojects的作用和区别是什么?
数据一致性:双删为什么要延时?
nxp官方uboot移植到野火开发板PRO(无任何代码逻辑的修改)
一文带你了解软件测试是干什么的?薪资高不高?0基础怎么学?
小朋友学C语言(3):整数、浮点数、字符
《富爸爸,穷爸爸》思维导图和学习笔记
【云原生实用技巧】使用 skopeo 批量同步 helm chart 依赖镜像