详解TCC89x的GPIO寄存器
来源:互联网 发布:淘宝满200减20 编辑:程序博客网 时间:2024/05/16 17:17
//=====================================================================
//TITLE:
// 详解TCC89x的GPIO寄存器
//AUTHOR:
// norains
//DATE:
// Tuesday 09-November-2010
//Environment:
// Windows CE 6.0
// Telechips TCC8900
//=====================================================================
在我的另一篇文章《TCC89x的GPIO使用解说》(http://blog.csdn.net/norains/archive/2010/11/09/5997230.aspx)已经对GPIO的使用做了一定的说明,但没有具体涉及到寄存器,所以本文就针对寄存器来做一些说明。
1. GPIO Data Register
数据寄存器,在这里可以读取到当前PIN的值。比如,GPIO_A00为输入模式的话,并且外部输入为高,那么我们读取GPADAT的Bit0,就是为1。如果为输出模式的话,在这里设置相应位的数值,也会表现到PIN外部。不过,并不建议直接在这里更改相应的数值,因为如果我们需要更改相应的bit,需要将整个寄存器读取,然后设置相应位之后再回写,远不如后面将要提到的寄存器效率更高。
2. GPIO Direction Control Register
方向寄存器,当相应的bit为1时,对应的pin为输出状态;如果为0,则是输入。
3. GPIO Set Register
置“1”寄存器,当在这里设置为“1”时,对应的数据寄存器的位也为“1”。换句话来说,关系为:GPxDAT = GPxDAT | GPxSET。在这个关系式中还能得知,只有“1”有效,如果往GPxSET写“0”,那么对应的GPxDAT的相应位并不会置“0”。
4. GPIO Clear Register
清“0”寄存器,也是写“1”有效,关系式为:GPxDAT = GPxDAT & ~GPxCLR。当在GPxCLR的某个位写“1”,那么对应的GPxDAT的相应位则变成“0”。
5. GPIO XOR Register
异或寄存器,关系式为:GPADAT = GPADAT ^ GPXOR。说实话,如果是用C/C++的话,该位使用的不多;但如果是汇编,使用频率就比较频繁了。
6. Driver Strength Control Register
驱动能力寄存器,可选数值为0~3,其中3为最高的驱动能力。
7. Pull UP/DOWN Control Register
上拉/下拉寄存器。比如PIN1,对应的位是PU1和PD1。如果要上拉,则PU1=1,PD1=0;下拉则是PU1=0,PD1=1;悬空则是PU1=0,PD1=0;但千万不能同时上拉或下拉,也就是不能同时PU1=1,PD1=1。
8. Port Configuration Register
功能寄存器,当每4Bit为0时,则对应的PIN的功能为GPIO,否则为别的特殊功能。
- 详解TCC89x的GPIO寄存器
- TCC89x的GPIO使用解说
- 详解tcc8935的GPIO寄存器
- 详解TCC89x的Hive Registry设置
- 详解TCC89x的LCD数值设置
- 详解TCC89x的Hive Registry设置
- STM32的GPIO寄存器概述
- stm32_2.GPIO的主要寄存器
- TCC89x外部中断使用详解
- GPIO的寄存器BSRR和BRR
- 关于GPIO的BSRR和BRR寄存器
- 每组GPIO端口的寄存器
- STM32 GPIO几个寄存器的理解
- STM32的GPIO内部结构及相关寄存器
- stm32之GPIO相关的寄存器
- STM32的GPIO内部结构及相关寄存器
- STM32F407配置寄存器(配置GPIO寄存器的例子)
- STM32 通用输入输出端口GPIO BRR、BSRR、ODR寄存器详解
- Spring 声明式事务的配置方式(三)
- Facebook的XHP
- mysql数据库mysqlhotcopy热备份的备份恢复方法
- oracle 的一些东西
- vs2005打包图解(含卸载功能)
- 详解TCC89x的GPIO寄存器
- 使用"文件浏览"对话框选择文件夹
- 关于void main(int argc, char *argv[ ])
- js 复制链接 兼容IE FF
- 博客新域名
- TCP/IP协议简介
- mysqlhotcopy 解决Can't locate DBI.pm in @INC
- PHP 和 MYSQL 简单应用
- Sans Serif 与 Serif 字体是什么意思?