查看: 1855|回复: 3

[原创] [FRDM KL02Z]I2C使用心得

[复制链接]
  • TA的每日心情
    开心
    2023-6-2 13:32
  • 签到天数: 272 天

    连续签到: 1 天

    [LV.8]以坛为家I

    44

    主题

    995

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    4415
    最后登录
    2023-6-2
    发表于 2016-3-3 11:22:17 | 显示全部楼层 |阅读模式
    由于KL02Z上面有两个I2C设备,为此,好好学习了一下I2C的编程.
    通常要实现I2C,需要10个左右的函数.可用软件模拟及硬件实现.
    每个硬件设备的I2C顺序不同.不用企图用一个通用的顺序实现.
    下面就是自己总结的I2C可能用到的10个函数.再具体,就得自己一步一步调试咯~
    //set pins:enable clock:set baudrate:enable.
    void Init(void);
    //set master mode:set transmit mode:send start signal.
    void Start(void);
    //resend start signal.
    void Restart(void);
    //set slave mode:set receive mode:send stop signal.
    void Stop(void);
    //W data to DATA register.
    void Write(u8);
    //R data from DATA register.
    u8 Read(void);
    ////set the device address:set operation direction:write to I2C.
    u8 Send7bitAddress(u7 add,u1 dir);
    //wait for transmit finish:wait for ACK:check RXAK.
    u8 WaitAck(void);
    //check the busy state(remembered by MCU).
    u8 IsBusy(void);
    //set ACK is included on the following receiving byte.
    void Ack(void);
    //set ACK is excluded.
    void Nack(void);
    //set Receive or transmit mode.
    void SetMasterDir(u1);
    //Start:Send7bitAddress:WaitAck:Stop.
    u8 Probe(u7 add);
    //Start:Send7bitAddress:WaitAck:send sub_add:Restart:Send7bitAddress:SetMasterDir:Read:Ack:WaitAck:Stop.
    u8 ReadArray(u7 add,u32 sub_add,u8 sub_add_len,u8* buf,u32 buf_len);
    //Start:Send7bitAddress:WaitAck:send sub_add:send data:Stop.
    u8 WriteArray(u7 add,u32 sub_add,u8 sub_add_len,u8* buf,u32 buf_len);
    ReadByte();
    WriteByte();

    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情

    2017-1-16 12:20
  • 签到天数: 16 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    12

    主题

    653

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1667
    最后登录
    2022-5-2
    发表于 2016-3-3 12:05:37 | 显示全部楼层
    不错                       
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2023-6-2 13:32
  • 签到天数: 272 天

    连续签到: 1 天

    [LV.8]以坛为家I

    44

    主题

    995

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    4415
    最后登录
    2023-6-2
     楼主| 发表于 2016-3-4 09:24:54 | 显示全部楼层

    谢谢~
    之前用过SPI觉的SPI很厉害了.
    现在学了I2C觉得I2C更厉害...
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4

    主题

    132

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    418
    最后登录
    2018-12-14
    发表于 2016-3-11 08:58:28 | 显示全部楼层
    学习了   
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-22 02:03 , Processed in 0.084138 second(s), 22 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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