查看: 571|回复: 0

[经验] 单片机GPIO编程入门教程

[复制链接]

该用户从未签到

发表于 2021-1-18 14:01:27 | 显示全部楼层 |阅读模式
分享到:

本文也适用于Launchpad开发板上使用的MSP430x2xx器件,如MSP430G2553、MSP430G2231等。MSP430单片机上的大多数引脚被分组为最多8个端口, P1到P8。每个端口都是8位宽,并有8个相关的I / O引脚。这些引脚直接映射到相应的端口寄存器,因此可以独立操作I / O引脚。只有端口P1和P2中的引脚支持中断。 此外,每个I / O引脚还具有可配置的上拉和下拉电阻。 每个端口都有一组相关的寄存器,用来操作各个引脚。 位映射和端口分组如下所示:

1.png


2.png


注意:在编程指南/数据手册中使用的引脚的命令约定是'Px.y',其中'x'对应的是端口号(1到8),'y'对应的是引脚号(0到7) X'。例如:P1.1是指端口1的第1引脚,P2.4是指端口2的第4引脚。您将看到与在MSP430 Launchpad开发板上标记引脚相同的约定。



当前版本的MSP430G2 Launchpad使用的是MSP430G2553和MSP430G2452。旧版本(Rev1.4)使用的是MSP430G2231和MSP430G2211。但是,除非另有说明,对于所有支持的器件,编程方法都是一样的。


MSP430单片机的GPIO寄存器

GPIO模块有许多寄存器。我们只会介绍本教程涉及的一些数字I / O寄存器。我将在其他的教程中介绍与中断相关的寄存器(即PxIFG,PxIES,PxIE)。

1. PxDIR:GPIO方向控制寄存器。将此寄存器中的任何位设置为0将会将相应的引脚[0至7]配置为输入,而将其设置为1将配置为输出。   

2. PxIN(只读):用于读取配置为输入的数字I / O引脚的值。 0 =输入为低电平,1 =输入为高电平。

3. PxOUT:当上拉/下拉电阻被禁用时,用于直接将值写入引脚。 0 =输出为低电平,1 =输出为高电平。上拉/下拉电阻使能时:0 =引脚拉低,1 =引脚拉高。

4. RxREN:对于配置为输入的引脚,PxREN用于为给定引脚启用上拉/下拉电阻,PxOUT与PxREN一起用于选择上拉或下拉电阻。将位设置为1将启用相应引脚的上拉/下拉电阻,同时将其设置为0将禁用相同的引脚。

PxDIR
PxREN
PxOUT
I / O配置
0
0
X
输入,禁用电阻
0
1
0
使能内部下拉的输入
0
1
1
使能内部上拉的输入
1
X
X
输出, PxREN无效


5. PxSEL&PxSEL2:由于大多数端口引脚多达4种不同的功能,我们需要一种机制来选择这些功能。这是使用PxSEL和PxSEL2寄存器来实现的。特定引脚的这些寄存器的位组合将选择特定的引脚功能。位组合如下所示:

PxSEL2(第n位)
PxSEL(第n位)
引脚功能
0
0
GPIO(数字I / O)功能
0
1
主要外设功能
1
0
保留。查阅设备特定的数据表。
1
1
辅助外围功能


另请注意,PxSEL / PxSEL2寄存器不会根据模块功能的要求更改引脚方向。确保使用PxDIR寄存器按照复用功能的要求设置正确的引脚方向。


回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /4 下一条



手机版|小黑屋|与非网

GMT+8, 2024-11-23 18:46 , Processed in 0.107573 second(s), 16 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.