4、PIC32系列 GPIO介绍

PIC32系列 GPIO介绍

1、PIC32参考资源

2、GPIO寄存器介绍

3、使用寄存器配置IO口输出LED闪烁

4、库函数封装定义

5、库函数

6、实验验证


1、PIC32参考资源

PIC32系列参考手册 中文版  链接地址:PIC系列参考手册-中文版 第12章IO端口.pdf

2、GPIO寄存器介绍

1、TRIS(三态)寄存器

TRIS寄存器用于配置通过IO端口引脚的数据方向。TRIS寄存器决定PORT I/O引脚是输入还是输出。

• TRIS 位设为 1 时,相应的 I/O 端口引脚配置为输入。

• TRIS 位设为 0 时,相应的 I/O 端口引脚配置为输出。

• 读 TRIS 寄存器时,将会读取最后写入 TRIS 寄存器的值。

• 上电复位之后,所有 I/O 端口引脚都定义为输入。

2、PORT 寄存器

PORT 寄存器用于访问 (读取) I/O 引脚。

• 写 PORT 寄存器时,数据将会写入相应的 LAT 寄存器 (PORT 数据锁存器)。那些配置为输出的 I/O 端口引脚会被更新。

• 写 PORT 寄存器实际上等同于写 LAT 寄存器。

• 读 PORT 寄存器时,将会读取施加到端口 I/O 引脚的同步信号。

3、LAT 寄存器

LAT 寄存器 (PORT 数据锁存器)用于保存写入端口 I/O 引脚的数据。

• 写 LAT 寄存器时,会将数据锁存到相应的端口 I/O 引脚。那些配置为输出的 I/O 端口引脚会被更新。

• 读 LAT 寄存器时,将会读取 PORT 数据锁存器中保存的数据,而不是从端口 I/O 引脚读取数据。

4、SET、CLR 和 和 INV I/O 端口寄存器

除 TRIS、PORT 和 LAT 基址寄存器外,每个端口模块还有关联的 SET(置 1)、CLR(清零)和 INV (取反)寄存器,用于提供原子级位操作并允许更快速的 I/O 引脚操作。正如寄存器名称所示,向 SET、 CLR 或 INV 寄存器写入值会有效地执行其名称所示的操作,但只会修改相应的基址寄存器中指定为 1 的位。不会修改指定为 0 的位。

• 向 TRISASET 寄存器写入 0x0001,只会将基址寄存器 TRISA 中的 bit 0 置 1

• 向 PORTDCLR 寄存器写入 0x0020,只会将基址寄存器 PORTD 中的 bit 5 清零

• 向 LATCINV 寄存器写入 0x9000,只会将基址寄存器 LATC 中的 bit 15 和 bit 12 取反

读取 SET、CLR 和 INV 寄存器会返回未定义的值。要查看对 SET、CLR 或 INV 寄存器执行写操作后的效果,必须读取基址寄存器。

SET、CLR 和 INV 寄存器不限于 TRIS、PORT 和 LAT 寄存器。其他 I/O 端口模块寄存器 ODC、CNEN 和 CNPUE 也具有这些位操作寄存器。

5、简而言之

TRS寄存器:设置数字引脚输入还是输出,置1配为输入(默认),清0配置为输出;

LAT寄存器:写端口值

POR寄存器:读端口值

CLR寄存器:清零

SET寄存器:置1

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Huangtop

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值