C6678学习-GPIO

文章详细介绍了C6678处理器中的16个GPIO引脚功能,包括作为通用输入输出和中断、EDMA事件模式时涉及的寄存器,如DIR、SET_DATA等,并阐述了各寄存器的作用,如DIR用于配置输入输出,IN_DATA用于读取输入状态,而SET_RIS_TRIG和SET_FAL_TRIG分别用于设置上升沿和下降沿触发中断。此外,还提到了外设时钟频率及中断启用寄存器BINTEN的相关信息。
摘要由CSDN通过智能技术生成

1、简介

C6678中共有16个GPIO,GPIO0~GPIO15。这些引脚的功能如下

  1. ​ 通用输入输出管脚
  2. ​ 中断&EDMA事件管脚
2、框图

在这里插入图片描述

1、GPIO作为通用输入输出时,用到的寄存器为DIR、SET_DATA、OUT_DATA、CLR_DATA、IN_DATA

2、GPIO管脚配置为中断&EDMA事件模式时,用到的寄存器为SET_RIS_TRIG、RIS_TRIG、CLR_RIS_TRIG、SET_FAL_TRIG、FAL_TRIG、CLR_FAL_TRIG。另外可以看出,在中断或EDMA模式的时候,可以忽略管脚的输入输出配置

3、外设时钟为CPU/6

3、寄存器

Direction Register (DIR)

控制GPIO管脚是输入还是输出,其中,对应bit置0表示该管脚配置为输出管脚;对应bit置1表示该管脚配置为输入管脚

Set Data Register (SET_DATA)

给SET_DATA寄存器对应位置1,将使该管脚输出高电平。写0则没有影响

Clear Data Register (CLR_DATA)

给CLR_DATA寄存器对应位置1,将使该管脚输出低电平。写0则没有影响

Output Data Register (OUT_DATA)

给OUT_DATA寄存器对应位置1,则输出高,写0则输出低。在配置为输入状态下没有影响。对SET_DATA和CLR_DATA寄存器操作其实都相当于间接操作这个寄存器

Input Data Register (IN_DATA)

在输入模式下,读取该寄存器获取管脚的状态

Set Rising Edge Interrupt Register (SET_RIS_TRIG)

在相应位写1,会在上升沿触发GPIO中断和EDMA事件。 写0则没有影响

Clear Rising Edge Interrupt Register (CLR_RIS_TRIG)

在相应位写1,会清除SET_RIS_TRIG相应的位。 写0则没有影响

Set Falling Edge Interrupt Register (SET_FAL_TRIG)

在相应位写1,会在下降沿触发GPIO中断和EDMA事件。 写0则没有影响

Clear Falling Edge Interrupt Register (SET_FAL_TRIG)

在相应位写1,会清除SET_FAL_TRIG相应的位。 写0则没有影响

Interrupt Per-Bank Enable Register (BINTEN)

只有该寄存器最低位置1时GPIO管脚才可以作为中断源。写0则禁用中断。

GPIO的中断触发方式可以是上升沿、下降沿或者上升沿下降沿都触发

4、地址
BINTEN_REG		0x02320008
DIR		0x02320010
OUT_DATA	0x02320014
SET_DATA	0x02320018
CLR_DATA	0x0232001C
IN_DATA	0x02320020
SET_RIS_TRIG	0x02320024
CLR_RIS_TRIG	0x02320028
SET_FAL_TRIG	0x0232002C
CLR_FAL_TRIG	0x02320030

/*在调试的过程中可以查看寄存器的地址来确定管脚的状态。比如输入模式下,可以通过查看地址0x02320020的值来看管脚是否接收正确*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值