6782|8

569

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

LM3S8962 GPIO函数库研究(连载) [复制链接]

GPIO 端口控制8个相互独立的IO管脚,实际管脚号代表对于数据的高低顺序位。每个管脚有下面的功能

  1. 可以配置输入或输出。一旦复位,他们默认作为输入。

  2. 在输入模式下,可由配置(高电平、低电平,上升沿、下降沿或 边沿)触发

  3. 输出模式下,输出电流可以配置为(2/4/6/8)毫安。配置8豪安的输出电流可以选择配置SLEW RATE ,以便控制信号的上升时间和下降时间。上电复位时,输出管脚默认是2豪安的驱动电流

  4。可配置弱上拉电阻或下拉电阻。在Sandstorm-class 系列器件,上电复位,默认是弱上拉;在其他系列,默认是禁止。

  5。可以配置输出OC门。上电复位默认到标准上下操作

  6。 所有的GPIO端口可以配置单独一个GIPO脚或一个外设专用IO. 上电复位,默认为GPIO管脚功能,当然不是所有的GPIO管脚都有复用功能。没有复用的GPIO管脚仅作为一个IO脚用

 

上面简单描述了GIPO管脚的公共特点,后续继续研究GPIO.

 

 

最新回复

很好,继续学习!  详情 回复 发表于 2012-8-6 19:00
 
点赞 关注

回复
举报

569

帖子

0

TA的资源

一粒金砂(高级)

沙发
 

GPIO 驱动函数概论

大部份GPIO函数能在同一时刻,操作多个GPIO管脚。这些函数的ucPINS 参数是被用来指定需要操作的管脚,该参数是用8位表示。GPIO管脚端口的对应GPIO管脚与参数的高低位一一对应。A端口的A0管脚对应参数的BIT0(LSB), A端口的A7管脚对应参数的BIT7(MSB),其余类推。例如,ucPINS 管脚为0X09, 则端口的PIN0和PIN3被函数操作。

  对于GPIO模块的驱动函数来讲,GPIORead() 和GPIOWrite()函数是最常用的。读操作,返回被请求管脚的值(其余管脚值被屏蔽),写操作影响被请求的管脚,当然同一时刻,多个管脚的变化,能被读写操作的。对管脚的值的屏蔽操作由硬件本身执行,读写操作命令发给硬件后,硬件翻译地址位中某些有效位作为需要操作的GPIO管脚的对应数据

  对应所有的GPIO模块驱动都有ucPINS参数,即使读写一个管脚,这些可以执行的。在这种情况下,管脚号对应的值就是0~7。

 
 

回复

569

帖子

0

TA的资源

一粒金砂(高级)

板凳
 

GPIO API 函数列表

unsigned long GPIODirModeGet (unsigned long ulPort, unsigned char ucPin)
void GPIODirModeSet (unsigned long ulPort, unsigned char ucPins, unsigned long ulPinIO)
unsigned long GPIOIntTypeGet (unsigned long ulPort, unsigned char ucPin)
void GPIOIntTypeSet (unsigned long ulPort, unsigned char ucPins, unsigned long ulIntType)
void GPIOPadConfigGet (unsigned long ulPort, unsigned char ucPin, unsigned
pulStrength, unsigned long pulPinType)
void GPIOPadConfigSet (unsigned long ulPort, unsigned char ucPins, unsigned long
Strength, unsigned long ulPinType)
void GPIOPinIntClear (unsigned long ulPort, unsigned char ucPins)
void GPIOPinIntDisable (unsigned long ulPort, unsigned char ucPins)
void GPIOPinIntEnable (unsigned long ulPort, unsigned char ucPins)
long GPIOPinIntStatus (unsigned long ulPort, tBoolean bMasked)
long GPIOPinRead (unsigned long ulPort, unsigned char ucPins)
void GPIOPinTypeADC (unsigned long ulPort, unsigned char ucPins)
void GPIOPinTypeCAN (unsigned long ulPort, unsigned char ucPins)
void GPIOPinTypeComparator (unsigned long ulPort, unsigned char ucPins)
void GPIOPinTypeGPIOInput (unsigned long ulPort, unsigned char ucPins)
void GPIOPinTypeGPIOOutput (unsigned long ulPort, unsigned char ucPins)
void GPIOPinTypeGPIOOutputOD (unsigned long ulPort, unsigned char ucPins)
void GPIOPinTypeI2C (unsigned long ulPort, unsigned char ucPins)
void GPIOPinTypePWM (unsigned long ulPort, unsigned char ucPins)
void GPIOPinTypeQEI (unsigned long ulPort, unsigned char ucPins)
void GPIOPinTypeSSI (unsigned long ulPort, unsigned char ucPins)

void GPIOPinTypeTimer (unsigned long ulPort, unsigned char ucPins)
void GPIOPinTypeUART (unsigned long ulPort, unsigned char ucPins)
void GPIOPinTypeUSBDigital (unsigned long ulPort, unsigned char ucPins)
void GPIOPinWrite (unsigned long ulPort, unsigned char ucPins, unsigned char ucVal)
void GPIOPortIntRegister (unsigned long ulPort, void (pfnIntHandler)(void))
void GPIOPortIntUnregister (unsigned long ulPort)

 

上面的所有GPIO模块驱动函数可以分成三类:

  1. GPIO管脚配置函数 

  2. GPIO中断处理函数

  3. GPIO管脚值访问函数

管脚配置函数:GPIODirModeSet() 、GPIOPadConfigSet (),配置回读函数 GPIODirModeGet() 、GPIOPadConfigGet ().

此外还有一些常用的配置外设管脚功能的函数如下:

are GPIOPinTypeCAN(), GPIOPinTypeComparator(), GPIOPinTypeGPIOInput(),
GPIOPinTypeGPIOOutput(), GPIOPinTypeGPIOOutputOD(), GPIOPinTypeI2C(), GPIOPinTypePWM(),
GPIOPinTypeQEI(), GPIOPinTypeSSI(), GPIOPinTypeTimer(), and GPIOPin-
TypeUART().
GPIO中断函数:

 GPIOIntTypeSet(), GPIOIntTypeGet(), GPIOPinIntEnable(),
GPIOPinIntDisable(), GPIOPinIntStatus(), GPIOPinIntClear(), GPIOPortIntRegister(), and GPIOPortIntUnregister().

GPIO读写函数

GPIOPinRead() and GPIOPinWrite().

 
 
 

回复

4996

帖子

19

TA的资源

裸片初长成(初级)

4
 
不错顶一下。
 
个人签名我的博客
 
 

回复

569

帖子

0

TA的资源

一粒金砂(高级)

5
 

GPIO 模块驱动函数分析----GPIODIRMODGet

驱动函数名:GpioDirModGet   (GPIO管脚目前是输入输出的配置的获取)

原型:unsigned long
GPIODirModeGet(unsigned long ulPort,
unsigned char ucPin)

函数结果是一个32位无符号长整型;

ulPort:端口地址,32位无符号长整型;

ucPin:管脚数据,8位无符号字符型;

功能:该管脚获取指定端口的特定管脚方向(输入或输出)和控制模式(通用IO或外设)配置特性。

返回值:枚举类型的数值(GPIO_DIR_MODE_IN,GPIO_DIR_MODE_OUT,GPIO_DIR_MODE_HW)

 

 

  程序使用该函数可以获知管脚目前的状态。

 
 
 

回复

569

帖子

0

TA的资源

一粒金砂(高级)

6
 

GPIO模块驱动函数分析--GPIODirModeSet

函数名:GPIODirModeSet (设置GPIO管脚的方向和管脚功能)

 

原型:void
GPIODirModeSet(unsigned long ulPort,
unsigned char ucPins,
unsigned long ulPinIO)

 

参数:ulPort:无符号32位长整型端口地址

          ulPins:无符号字符管脚数值;

          ulPinIO:无符号IO管脚数值,它是一个枚举类型的数值,它是下面3个值中的一个:

GPIO_DIR_MODE_IN:表示设置GPIO管脚 通用IO ,输入;

GPIO_DIR_MODE_OUT:表示设置GPIO管脚 通用IO,输出;

GPIO_DIR_MODE_HW:表示设置GPIO管脚,外设

 

需要说明: ulPins 按位封装的类型,可以按照管脚位对应控制相应的IO关键,bit0 代表端口的PIN0;

bit7 代表端口的PIN7;

 

 

作用:设置GPIO管脚( 输入输出类型 )和 (通用IO或外设)

 

 

返回值:无;

 
 
 

回复

569

帖子

0

TA的资源

一粒金砂(高级)

7
 

GPIO驱动函数分析-GPIOIntTypeGet

函数名:GPIOIntTypeGet

原型:unsigned long
GPIOIntTypeGet(unsigned long ulPort,
unsigned char ucPin)

 

参数:ulPort:无符号32位长整型端口地址

          ulPins:无符号字符管脚数值;

功能:获取某个管脚中断类型。GPIO管脚中断类型可以配置,上升沿触发 、下降沿触发或沿触发。也可配置高电平或低电平触发。

返回值:枚举类型的数值(GPIO_FALLING_EDGE
GPIO_RISING_EDGE
GPIO_BOTH_EDGES
GPIO_LOW_LEVEL
GPIO_HIGH_LEVEL).

 

GPIO_FALLING_EDGE: 表示下降沿触发
GPIO_RISING_EDGE:表示上升沿触发
GPIO_BOTH_EDGES:表示沿触发
GPIO_LOW_LEVEL:表示低电平触发
GPIO_HIGH_LEVEL:表示高电平触发

         

 
 
 

回复

17

帖子

0

TA的资源

一粒金砂(初级)

8
 
不错,学习中。3ku!
 
 
 

回复

14

帖子

0

TA的资源

一粒金砂(中级)

9
 

回复

很好,继续学习!
 
 
 

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

随便看看
查找数据手册?

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
快速回复 返回顶部 返回列表