12
返回列表 发新帖
楼主:

【开发学院第三期】相关硬件技术资料贴

[复制链接]

该用户从未签到

4

主题

18

帖子

0

新手上路

Rank: 1

积分
44
最后登录
1970-1-1
发表于 2010-5-13 11:21:29 | 显示全部楼层

回复:【开发学院第三期】相关硬件技术资料贴

xiexiexiexiexiexie

该用户从未签到

0

主题

11

帖子

0

新手上路

Rank: 1

积分
11
最后登录
1970-1-1
发表于 2010-5-19 10:07:32 | 显示全部楼层

RE:【开发学院第三期】相关硬件技术资料贴


good
  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    373
    最后登录
    2023-8-16
     楼主| 发表于 2010-5-21 14:10:49 | 显示全部楼层

    回复:【开发学院第三期】相关硬件技术资料贴

    I2C时序操作函数
    #include "support_common.h" /* include peripheral declarations and more */
    #include "i2c_driver.h"
    void init_i2c()
    {
        unsigned char temp;
       
        MCF_GPIO_PASPAR  |=MCF_GPIO_PASPAR_SCL0_SCL0 |MCF_GPIO_PASPAR_SDA0_SDA0 ;
        MCF_I2C_I2FDR(0)=MCF_I2C_I2FDR_IC(0x3A);//about 100khz
        MCF_I2C_I2ADR(0)=0xf0;
        MCF_I2C_I2CR(0)=0x80;//enable i2c

        if(MCF_I2C_I2SR(0)&MCF_I2C_I2SR_IBB)
        {
            MCF_I2C_I2CR(0)=0x0;
            MCF_I2C_I2CR(0)=MCF_I2C_I2CR_IEN |      /* enable module */
                           MCF_I2C_I2CR_MSTA;
            temp=MCF_I2C_I2DR(0);
            MCF_I2C_I2SR(0)=0;
            MCF_I2C_I2CR(0)=0x0;
            MCF_I2C_I2CR(0)=0x80;//enable i2c
        }
    }
    void i2c_start()
    {
        while(MCF_I2C_I2SR(0)&MCF_I2C_I2SR_IBB);
        MCF_I2C_I2CR(0)|=MCF_I2C_I2CR_MTX ;
        MCF_I2C_I2CR(0)|=MCF_I2C_I2CR_MSTA ; 
    }

    unsigned char i2c_send_byte(unsigned char c)
    {

        MCF_I2C_I2DR(0)=c;
        while((MCF_I2C_I2SR(0)&MCF_I2C_I2SR_IIF)==0)
        {
         
        }
        MCF_I2C_I2SR(0)&=~MCF_I2C_I2SR_IIF;
        if(MCF_I2C_I2SR(0)&MCF_I2C_I2SR_RXAK) 
            return 1;//failed
        else
            return 0;//success
    }

    unsigned char i2c_recv_byte(unsigned char ack)
    {
        unsigned char temp;
        if(ack>0)
        {
            MCF_I2C_I2CR(0)|=MCF_I2C_I2CR_TXAK; 
        }
        else
        {
            MCF_I2C_I2CR(0)&=~MCF_I2C_I2CR_TXAK;  
        }
       
        MCF_I2C_I2CR(0)&=~MCF_I2C_I2CR_MTX ;
        temp=MCF_I2C_I2DR(0); 
        while((MCF_I2C_I2SR(0)&MCF_I2C_I2SR_IIF)==0)
        {
         
        }
        MCF_I2C_I2SR(0)&=~MCF_I2C_I2SR_IIF;
        temp= MCF_I2C_I2DR(0);
        while((MCF_I2C_I2SR(0)&MCF_I2C_I2SR_IIF)==0)
        {
         
        }
        MCF_I2C_I2SR(0)&=~MCF_I2C_I2SR_IIF;
        return temp;
    }
    void i2c_stop()
    {
        MCF_I2C_I2CR(0)&=~MCF_I2C_I2CR_MSTA ; 
    }
    void i2c_restart()
    {
        MCF_I2C_I2CR(0)|=MCF_I2C_I2CR_RSTA;
    }
    该会员没有填写今日想说内容.
  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    373
    最后登录
    2023-8-16
     楼主| 发表于 2010-5-21 14:11:31 | 显示全部楼层

    回复:【开发学院第三期】相关硬件技术资料贴

    AT24C02读取写入函数

    #include "i2c_driver.h"
    #include "at24c02.h"
    #include "delay.h"
    /* write 24xxxx I2C EEPROM
    * 参数:
    * buf---包含待写入数据的缓冲区
    * addr---eeprom起始地址
    * num--数据长度
    * 返回:
    * 0---success
    * 1---failed
    * 2---invalid address
    */
    unsigned char at24c02_write(unsigned char *buf,unsigned char num,uint8 addr)
    {
        unsigned char i,ret;
       
        if(addr+num>EEPROM_MAX_ADDR)
            return 2;
       
        i2c_start();
        ret=i2c_send_byte(WR24C02);
        if(ret)
        {
            i2c_stop();
            return 1;
        }
       
        ret=i2c_send_byte(addr);
        if(ret)
        {
            i2c_stop();
            return 1;
        }
        for(i=0;iEEPROM_MAX_ADDR)
            return 2;
       
        i2c_start();
        if(i2c_send_byte(WR24C02))
        {
            i2c_stop();
            return 1;
        }
        ret=i2c_send_byte(addr);
        if(ret)
        {
            i2c_stop();
            return 1;
        }

        i2c_restart();
        if(i2c_send_byte(RD24C02))
        {
            i2c_stop();
            return 1;
        }
       
        for(i=0;i
    该会员没有填写今日想说内容.

    该用户从未签到

    0

    主题

    31

    帖子

    0

    新手上路

    Rank: 1

    积分
    231
    最后登录
    1970-1-1
    发表于 2010-6-2 08:55:37 | 显示全部楼层

    回复:【开发学院第三期】相关硬件技术资料贴

    :【开发学院第三期】相关硬件技术资料贴kankan

    该用户从未签到

    0

    主题

    5

    帖子

    0

    新手上路

    Rank: 1

    积分
    16
    最后登录
    1970-1-1
    发表于 2010-6-2 10:36:37 | 显示全部楼层

    回复:【开发学院第三期】相关硬件技术资料贴

    wo也看看!!!
  • TA的每日心情
    擦汗
    2019-7-6 18:29
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    0

    主题

    212

    帖子

    0

    高级会员

    Rank: 4

    积分
    897
    最后登录
    2019-9-19
    发表于 2010-6-2 12:56:30 | 显示全部楼层

    RE:【开发学院第三期】相关硬件技术资料贴

    顶楼主,谢谢分享

    该用户从未签到

    0

    主题

    2

    帖子

    0

    新手上路

    Rank: 1

    积分
    2
    最后登录
    1970-1-1
    发表于 2010-6-23 11:01:43 | 显示全部楼层

    RE:【开发学院第三期】相关硬件技术资料贴

    分享是一种美德,谢谢~

    该用户从未签到

    0

    主题

    318

    帖子

    0

    高级会员

    Rank: 4

    积分
    880
    最后登录
    2018-2-27
    发表于 2016-8-15 22:56:15 | 显示全部楼层

    顶楼主,谢谢分享
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-5-7 13:59 , Processed in 0.127961 second(s), 25 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表