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

📄 iic_driver.c

📁 在ads上编写的s3c2410关于ICC的驱动程序,共有4个初始函数.
💻 C
字号:
#include "..\..\Startup2410\inc\2410addr.h"
//#include "..\..\Startup2410\inc\2410lib.h"
//#include "..\..\Startup2410\inc\option.h"
//#include "..\inc\Uart_driver.h"
//#include "..\..\Startup2410\inc\def.h"
/*
*************************************************************************************************************
- 函数名称 : void Master_transmitter(int addr,int data)
- 函数说明 : 主IIC设备传送数据
- 输入参数 : 无
- 输出参数 : 无
*************************************************************************************************************
*/
void Master_transmitter(int addr,int data)
{  
   int r=1;
   //rIICCON=0xe0;
   rIICSTAT=0xc0;               //配置主传送模式
   rIICDS=addr;                 //写地址
   rIICSTAT=0xF0;               //开始信号
   while(!(rIICSTAT&0x01))
  {;
  }                               
   
   while(r!=0)
   {
   
     rIICDS=data;
     rIICCON&=0xf7;             //清中断挂起位
     r--;
   while(!(rIICSTAT&0x01))
  {;
  }                               
   
   }
   
    rIICSTAT=0xd0;              //结束信号
    rIICCON&=0xf7;              //清中断挂起位
    
}      
/*
*************************************************************************************************************
- 函数名称 : void Master_receiverint addr()
- 函数说明 : 主IIC设备接收数据
- 输入参数 : 无
- 输出参数 : 无
*************************************************************************************************************
*/
int Master_receiver(int addr)
{
   int data;
   int r=1;
   //rIICCON=0xe0;
   rIICSTAT=0x80;               //配置主接收模式
   rIICDS=addr;                 //写地址
   rIICSTAT=0xB0;               //开始信号
     while(!(rIICSTAT&0x01))
  {;
  }
  while(r!=0)
  {
    data=rIICDS;
    
    rIICCON&=0xf7;             //清中断挂起位
    r--;
  }

    rIICSTAT=0x90;              //结束信号
    rIICCON&=0xf7;              //清中断挂起位
    return data;
}
/*
*************************************************************************************************************
- 函数名称 : void Slave_transmitter(int data)
- 函数说明 : 主IIC设备传送数据
- 输入参数 : 无
- 输出参数 : 无
*************************************************************************************************************
*/
void Slave_transmitter(int data)
{
   int r=1;
   //rIICCON=0xe0;
   rIICSTAT=0x40;               //配置从发送模式
   while(!(rIICSTAT&&0x04))
   {
   ;
   }
    while(r!=0)
   {
     rIICDS=data;
     rIICCON&=0xf7;             //清中断挂起位
   }
}

/*
*************************************************************************************************************
- 函数名称 : int Slave_receiver()
- 函数说明 : 主IIC设备传送数据
- 输入参数 : 无
- 输出参数 : 无
*************************************************************************************************************
*/  
  
int Slave_receiver()
{
 int data;
 int r=1;
 //rIICCON=0xe0; 
 rIICSTAT=0x0;               //配置从接收模式
 while(!(rIICSTAT&&0x04))
 {
  ;
 } 
 while(r!=0)
 {
  data=rIICDS;
  rIICCON&=0xf7;             //清中断挂起位
 }
 return data;
}

⌨️ 快捷键说明

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