3735|0

1万

帖子

25

TA的资源

裸片初长成(高级)

楼主
 

ADuCM360的IO口控制方法。 [复制链接]

一、ADuCM360IO控制

1、它有8P0口、8P1口及3P2口,这些端口都有可以提供1mA电流的、受GPxPUL寄存器控制的上拉电阻。

在作为输入时

VINL = 0.2 x IOVDD max

VINH = 0.7 x IOVDD min

2IO的控制有以下几种:

l       IO上拉允许

l       数据输入

l       开路允许

l       数据输出

l       位置位

l       位清零

l       位切换

l       输出允许

3IO功能由GPxCON控制

用于控制复用功能

4、控制寄存器

0x0000 + n * 30h (n = 0 : port0 , 1, 2 )

GPnCON      GPIOn配置寄存器         RW 复位值0x0000

0x0004 + n * 30h

GPnOEN GPIOn输出允许寄存器 RW     复位值0x00

0x0008+ n * 30h

GPnPUL GPIOn上拉寄存器         RW     复位值0xFF

0x000C+ n * 30h

GPnOCE GPIOn开路寄存器         RW     复位值0x00

0x0014+ n * 30h

GPnIN1   GPIOn输入寄存器         R   复位值NA

0x0018+ n * 30h

GPnOUT GPIOn输出寄存器         RW     复位值0x00

0x001C+ n * 30h

GPnSET GPIOn置位寄存器         W  复位值0x00

0x0020+ n * 30h

GPnCLR GPIOn清零寄存器         W  复位值0x00

0x0024+ n * 30h

GPnTGL GPIOn切换寄存器         W  复位值0x00

二、ADI例程中,对IO的控制方法

1IO结构体

typedef struct {                      /*!< pADI_GP0 Structure  */

  __IO uint16_t  GPCON;               /*!< GPIO Port 0 configuration */

  __I  uint16_t  RESERVED0;

  __IO uint8_t   GPOEN;        /*!< GPIO Port 0 output enable */

  __I  uint8_t   RESERVED1[3];

  __IO uint8_t   GPPUL;        /*!< GPIO Port 0 output pull up enable. */

  __I  uint8_t   RESERVED2[3];

  __IO uint8_t   GPOCE;         /*!< GPIO Port 0 tri state */

  __I  uint8_t   RESERVED3[7];

  __IO uint8_t   GPIN;            /*!< GPIO Port 0 data input.*/

  __I  uint8_t   RESERVED4[3];

  __IO uint8_t   GPOUT;         /*!< GPIO Port 0 data outt*/

  __I  uint8_t   RESERVED5[3];

  __IO uint8_t   GPSET;          /*!< GPIO Port 0 data out set */

  __I  uint8_t   RESERVED6[3];

  __IO uint8_t   GPCLR;          /*!< GPIO Port 0 data out clear. */

  __I  uint8_t   RESERVED7[3];

  __IO uint8_t   GPTGL;          /*!< GPIO Port 0 pin toggle. */

} ADI_GPIO_TypeDef;

结构体中的每个成员(保留除外)都对应一个控制寄存器地址。

2、使用时定义一个结构体指针:

#define pADI_GP0      ((ADI_GPIO_TypeDef *)ADI_GP0_ADDR)

并使用以下语句

pADI_GP0->GPCON |= 0x3C;   // Configure P0.1/P0.2 for UART

或使用函数:

DioOen(pADI_GP1,0x8);     // Set P1.3 as an output for test purposes

点赞 关注
 
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表