当前位置:  技术问答>linux和unix

在S3C2410上写基于linux 的IIC程序具体怎么写啊?(求助)

    来源: 互联网  发布时间:2016-05-09

    本文导语:     我的板子是s3c2410,移植的是2.4的内核,现在想在上面做利用IIC实现对寄存器(24c04)的读写操作,书上的实例我看了,网上的实例代码也下看很多,可是要么不知道怎么编译,要么就是编译老通不过,要么就是通...

   我的板子是s3c2410,移植的是2.4的内核,现在想在上面做利用IIC实现对寄存器(24c04)的读写操作,书上的实例我看了,网上的实例代码也下看很多,可是要么不知道怎么编译,要么就是编译老通不过,要么就是通过了在开发板上运行上老提示:syntax error : word unexpected(expecting:):),本人比较菜哪位高手能指点下小弟linux下IIC的开发 的详细流程啊,越详细越好,有实例资料就更好了,万分感激!!我在这个问题上纠缠都块一周了。
  

|
送你一份C源码,慢慢琢磨吧,中文注释的内容已经够多了。
如果还不会,那你就一行一行的注释好了,这样你就清楚他是怎么工作的了


#include     
/* 全局符号定义 */   
#define HIGH 1    
#define LOW 0    
#define FALSE 0    
#define TRUE ~FALSE    
#define function    
#define end_if    
#define end_for    
#define byte unsigned char    
sbit SCL        = 0x96 ;   
sbit SDA        = 0x97 ;   
   
   
/****************************************************************************  
*    函数原型: void function delay(void);  
*    功    能: 本函数实际上只有一条返回指令, 在具体应用中可视具体要求增加延时   
*              指令。  
****************************************************************************/   
void function delay( void ) {   
    ;   
 }   
   
/****************************************************************************  
*    函数原型: void function I_start(void);  
*    功    能: 提供I2C总线工作时序中的起始位。                                
****************************************************************************/   
void function I_start( void ) {   
    SCL = HIGH ;   
    delay() ;   
    SDA = LOW ;   
    delay() ;   
    SCL = LOW ;   
    delay() ;   
 }   
   
/****************************************************************************  
*    函数原型: void function I_stop(void);  
*    功    能: 提供I2C总线工作时序中的停止位。  
****************************************************************************/   
void function I_stop( void ) {   
    SDA = LOW ;   
    delay() ;   
    SCL = HIGH ;   
    delay() ;   
    SDA = HIGH ;   
    delay() ;   
    SCL = LOW ;   
    delay() ;   
 }   
   
/****************************************************************************  
*    函数原型: void function I_init(void);  
*    功    能: I2C总线初始化。在main()函数中应首先调用本函数, 然后再调用  
*              其它函数。   
****************************************************************************/   
void function I_init( void ) {   
    SCL = LOW ;   
    I_stop() ;   
}   
   
/****************************************************************************  
*    函数原型: bit function I_clock(void);  
*    功    能: 提供I2C总线的时钟信号, 并返回在时钟电平为高期间SDA 信号线上状  
*              态。本函数可用于数据发送, 也可用于数据接收。   
****************************************************************************/   
bit function I_clock( void ) {   
    bit sample ;   
    SCL = HIGH ;   
    delay() ;   
    sample = SDA ;   
    SCL = LOW ;   
    delay() ;   
    return ( sample ) ;   
 }   
   
/****************************************************************************  
*    函数原型: bit function I_send(byte I_data);  
*    功    能: 向I2C总线发送8位数据, 并请求一个应答信号ACK。如果收到ACK应答  
*              则返回1(TRUE), 否则返回0(FALSE)。   
****************************************************************************/   
bit function I_send( byte I_data ) {   
    register byte i ;   
    /* 发送8位数据 */   
    for ( i=0 ; i

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • s3c2410无线网卡
  • s3c2410开发路由器
  • 2.6内核 S3C2410 中断号怎么算啊
  • 如何利用s3c2410来计时
  • S3C2410寄存器的配置问题,请教了
  • 急需按键驱动源码 s3c2410开发板 linux-2.6.33的内核
  • S3C2410上SD卡驱动问题
  • 谁有s3c2410的USB Device Driver?
  • 在2.6.15下配置ARM s3c2410内核,无法启动munconfig,急......
  • S3C2410的AD驱动
  • S3C2410按键驱动功能实现
  • s3c2410 linux操作系统 insmod 驱动错误 内存耗尽
  • 嵌入式s3c2410的中断处理问题
  • arm S3c2410 上面的 linux 在哪里下载啊 ???
  • S3C2410 SPI驱动问题(高手敬请入场)
  • 移植linux2.6.24到S3C2410却无法ping同主机
  • 一个简单的s3c2410键盘驱动问题
  • s3c2410中断按钮怎么消除抖动
  • 问个和硬件有关的问题:s3c2410开发板管脚
  • 对s3c2410上nand flash时序的一些问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3