⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gpio.c

📁 这个是基于ARM7的相关驱动代码
💻 C
字号:
/************************************************************
  Copyright (C), 2006, comba. Co., Ltd.
  FileName:      gpio.c
  Author:        hejun  
  Version :      1.0      
  Date:          2006.4.14       
  Description:   GPIO(ARM7 LPC2212) API函数      
  Function List:   
                 1. GPIO_pinWrite
                 2. GPIO_pinRead
                 3. GPIO_pinDirection
                 4. GPIO_pinPullUpEnable
                 5. GPIO_pinPullUpDisable
                 9. GPIO_pinInputGlitchFilter
                 10. GPIO_intEnable
                 11. GPIO_intDisable
        
  History:         
      <author>  <time>     <version >   <desc>
      hejun   2006.4.14     1.0       create  
***********************************************************/
#define _DEFINE_VAR_GPIO
#include "gpio.h"

/*************************************************
  Function:    GPIO_pinWrite   
  Description: 向指定io管脚写   
  Calls:         
  Called By:     
  Input:                           
               hGpio-> 端口句柄号
               pinId-> 管脚ID号
               val-> 写入值 0:低电平,1:高电平
  Output:      none   
  Return:      none  
  Others:      none   
*************************************************/
void GPIO_pinWrite(GPIO_Handle hGpio,INT32U pinId,INT32U val)
{
	INT32U mask = 0x01;
	if(val)
	{
        hGpio->IO_SET |= (mask << pinId);
    }
    else
    {
		hGpio->IO_CLR |= (mask << pinId);
	}	
}

/*************************************************
  Function:    GPIO_pinRead   
  Description: 读取指定io管脚   
  Calls:         
  Called By:     
  Input:                           
               hGpio-> 端口句柄号
               pinId-> 管脚ID号
  Output:      none
  Return:      io管脚状态  
  Others:      none   
*************************************************/
INT32U GPIO_pinRead(GPIO_Handle hGpio,INT32U pinId)
{
     return ((hGpio->IO_PIN)&(0x00000001 << pinId));
}

/*************************************************
  Function:     GPIO_pinDirection  
  Description:  作为IO功能时,输入输出方向选择  
  Calls:         
  Called By:     
  Input:                           
               hGpio-> 端口句柄号
               pinId-> 管脚ID号
               direction->输入输出方向
  Output:      none   
  Return:      none  
  Others:      none   
*************************************************/
void GPIO_pinDirection(GPIO_Handle hGpio,INT32U pinId,INT32U direction)
{
	if(GPIO_OUTPUT == direction)
	{
        hGpio->IO_DIR |=  (0x01 << pinId);
	}
	else if(GPIO_INPUT == direction)
	{
        (hGpio->IO_DIR) &= ~(0x01 << pinId);
	}
}

/*************************************************
  Function:     GPIO_pinClr  
  Description:  作为IO功能时,且引脚配置为输出模式时,写入
                1使对应的引脚输出低电平,并清零IOSET寄存器中相应的位
                ,写入0无效;如果一个引脚配置为输入或第二功能,写IOCLR无效   
  Calls:         
  Called By:     
  Input:                           
               hGpio-> 端口句柄号
               pinId-> 管脚ID号
  Output:      none   
  Return:      none  
  Others:      none   
*************************************************/
void GPIO_pinClr(GPIO_Handle hGpio, INT32U pinID)
{
	if((hGpio -> IO_DIR)&(0x00000001 << pinID) != GPIO_OUTPUT)
	  return;
	
	(hGpio -> IO_CLR) &= ~(0x00000001 << pinID);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -