DSP GPIO模块部分学习

2019-08-07 13:23发布

1 概述
通过GPIO模块的设计以允许对C55x器件中可用的非复用和地址GPIO引脚的核心控制。以下三个表格列出了该模块有关的函数,寄存器和宏定义。
表8-1 GPIO函数
——————————————————————————
GPIO_pinDirection
设置GPIO引脚为输入或者输出
GPIO_pinDisable
禁止一个引脚作为GPIO引脚
GPIO_pinEnable
使能一个引脚作为GPIO引脚
GPIO_pinRead
读GPIO引脚的值
GPIO_pinWrite
向GPIO引脚写值
下面的函数是C5501和C5502器件所支持。
GPIO_colse
释放一个或多个GPIO引脚
GPIO_config
配置GPIO引脚
GPIO_open
分配一个或多个GPIO引脚到当前进程中
GPIO_pinReadAll
读一个或多个引脚的值
GPIO_pinWriteAll
写一个或多个引脚
GPIO_pinReset
复位一个或多个引脚
————————————————————————————
表1-2 GPIO寄存器
IODIR         IO7DIR, IO6DIR, IO5DIR, IO4DIR, IO3DIR, IO2DIR, IO1DIR, IO0DIR
IODATA         IO7D, IO6D, IO5D, IO4D, IO3D, IO2D, IO1D, IO0D
C5509 and C5509A支持以下.
AGPIOEN                 IO13, IO12, IO11, IO10, IO9, IO8
AGPIODIR         IO13DIR, IO12DIR, IO11DIR, IO10DIR, IO9DIR, IO8DIR
AGPIODATA        IO13D, IO12D, IO11D, IO10D, IO9D, IO8D
C5502 和 C5501支持以下.
PGPIOEN0         IO15EN, IO14EN, IO13EN, IO12EN, IO11EN, IO10EN, IO9EN, IO8EN,
IO7EN, IO6EN, IO5EN, IO4EN, IO3EN, IO2EN, IO1EN, IO0EN
PGPIODIR0         IO15DIR, IO14DIR, IO13DIR, IO12DIR, IO11DIR, IO10DIR, IO9DIR, IO8DIR,
IO7DIR, IO6DIR, IO5DIR, IO4DIR, IO3DIR, IO2DIR, IO1DIR
PGPIODAT0         IO15DAT, IO14DAT, IO13DAT, IO12DAT, IO11DAT, IO10DAT, IO9DAT, IO8DAT,
IO7DAT, IO6DAT, IO5DAT, IO4DAT, IO3DAT, IO2DAT, IO1DAT, IO0DAT
PGPIOEN1         IO31EN, IO30EN, IO29EN, IO28EN, IO27EN, IO26EN, IO25EN, IO24EN,
IO23EN, IO22EN, IO21EN, IO20EN, IO19EN, IO18EN, IO17EN, IO16EN
PGPIODIR1         IO31DIR, IO30DIR, IO29DIR, IO28DIR, IO27DIR, IO26DIR, IO25DIR,
IO24DIR, IO23DIR, IO22DIR, IO21DIR, IO20DIR, IO19DIR, IO18DIR,
IO17DIR, IO16DIR
PGPIODAT1         IO31DAT, IO30DAT, IO29DAT, IO28DAT, IO27DAT, IO26DAT, IO25DAT,
IO24DAT, IO23DAT, IO22DAT, IO20DAT, IO19DAT, IO18DAT, IO17DAT,
IO16DAT
PGPIOEN2         IO45EN, IO44EN, IO43EN, IO42EN, IO41EN, IO40EN, IO39EN, IO38EN,
IO37EN, IO36EN, IO35EN, IO34EN, IO33EN, IO32EN
PGPIODIR2         IO45DIR, IO44DIR, IO43DIR, IO42DIR, IO41DIR, IO40DIR, IO39DIR,
IO38DIR, IO37DIR, IO36DIR, IO35DIR, IO34DIR, IO33DIR, IO32DIR
PGPIODAT2         IO45DAT, IO44DAT, IO43DAT, IO42DAT, IO41DAT, IO40DAT, IO39DAT,
IO38DAT, IO37DAT, IO36DAT, IO35DAT, IO34DAT, IO33DAT, IO32DAT
————————————————————————————
2 配置结构体
以下是建立GPIO的配置结构体
GPIO_Config(非并行GPIO引脚配置结构体)
成员列表:        Uint16 ioen        引脚使能寄存器 IOEN
Uint16 iodir        引脚方向寄存器 IODIR
说明        :        建立非并行GPIO引脚的GPIO配置结构体.创建并初始化该结构体,接着向GPIO_config()函数船体其地址。你可以通过使用文本值或者GPIO_RMK宏来创建结构体成员值。
GPIO_ConfigAll(并行和非并行GPIO引脚的配置结构体)
说明        :        GPIO配置结构体是用于建立并行和非并行GPIO引脚,.创建并初始化该结构体,接着向GPIO_configAll()函数船体其地址。你可以通过使用文本值或者GPIO_RMK宏来创建结构体成员值。
成员列表:        
Uint16 ioen                 非并行引脚使能寄存器                               IOEN
Uint16 iodir                 非并行GPIO引脚方向寄存器                           IODIR
Uint16 pgpioen      并行GPIO引脚使能寄存器0                           PGPIOEN0
Uint16 pgpiodir      并行GPIO引脚方向寄存器0                        PGPIODIR0
Uint16 pgpioen1     并行GPIO引脚使能寄存器1                     PGPIOEN1
Uint16 pgpiodir1     并行GPIO引脚方向寄存器1                   PGPIODIR1
Uint16 pgpioen2     并行GPIO引脚使能寄存器 2                      PGPIOEN2
Uint16 pgpiodir2     并行GPIO引脚方向寄存器2                   PGPIODIR2
3函数
以下的函数被C5502和C5501支持
GPIO_close       (释放先前被GPIO_open所占用的GPIO引脚)
函数        Void GPIO_(GPIO_Handle hGpio);
参数        hGpio        GPIO 引脚句柄(参见GPIO__open())
返回值        None
说明        释放先前被GPIO_open所占用的GPIO引脚。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。