查看: 2211|回复: 8

[分享] K64 I2C 怎麼使用?

[复制链接]

该用户从未签到

4

主题

19

帖子

0

注册会员

Rank: 2

积分
90
最后登录
2015-4-30
发表于 2015-1-27 10:47:54 | 显示全部楼层 |阅读模式
K64 I2C 怎麼使用?
可以問一下初始化有哪些要設定?
文件有點看不太懂...一直都不會動..


求助...
回复

使用道具 举报

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

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2015-1-27 15:15:05 | 显示全部楼层
    IO配置、设置I2C时钟、I2C波特率配置、I2C开启、I2C中断配置。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4

    主题

    19

    帖子

    0

    注册会员

    Rank: 2

    积分
    90
    最后登录
    2015-4-30
     楼主| 发表于 2015-1-27 15:51:25 | 显示全部楼层
    安 发表于 2015-1-27 15:15
    IO配置、设置I2C时钟、I2C波特率配置、I2C开启、I2C中断配置。

    我是使用FRDM K64版 HELLO WORLD程式裡添加I2C 做使用
    IO配置
      configure_i2c_pins(0u);
      configure_i2c_pins(1u);
    void configure_i2c_pins(uint32_t instance)
    {
      switch(instance) {   
        case HW_I2C0:                       /* I2C0 */
          /* Affects PORTE_PCR24 register */
          PORT_HAL_SetMuxMode(PORTE_BASE,24u,kPortMuxAlt5);
          PORT_HAL_SetOpenDrainCmd(PORTE_BASE,24u,true);
          /* Affects PORTE_PCR25 register */
          PORT_HAL_SetMuxMode(PORTE_BASE,25u,kPortMuxAlt5);
          PORT_HAL_SetOpenDrainCmd(PORTE_BASE,25u,true);
          break;
    //----------------------------------------------------------------------------------------------------------------------I2C
        case HW_I2C1:                       /* I2C1 */
          /* Affects PORTC_PCR10 register */
          PORT_HAL_SetMuxMode(PORTC_BASE,10u,kPortMuxAlt2);
          PORT_HAL_SetOpenDrainCmd(PORTC_BASE,10u,true);
          /* Affects PORTC_PCR11 register */
          PORT_HAL_SetMuxMode(PORTC_BASE,11u,kPortMuxAlt2);
          PORT_HAL_SetOpenDrainCmd(PORTC_BASE,11u,true);
          break;
    //----------------------------------------------------------------------------------------------------------------------I2C
        default:
          break;
      }
    }

    设置I2C时钟
    ???



    I2C波特率配置
       i2c_master_state_t master;
       i2c_status_t returnValue;

       i2c_device_t slave =
       {
           .address = 0x3A,
           .baudRate_kbps = 100
       };



    I2C开启
       I2C_DRV_MasterInit(1, &master);



    I2C中断配置
    ??

    其他不知道在哪設定...
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2015-1-27 16:11:24 | 显示全部楼层
    I2C时钟设置在时钟配置寄存器中in个,中断配置看一下NVIC和I2C控制寄存器.
    为什么不用库呢?或者Kinetis SDK呢?
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4

    主题

    19

    帖子

    0

    注册会员

    Rank: 2

    积分
    90
    最后登录
    2015-4-30
     楼主| 发表于 2015-1-27 16:19:44 | 显示全部楼层
    本帖最后由 good852 于 2015-1-27 16:23 编辑
    安 发表于 2015-1-27 16:11
    I2C时钟设置在时钟配置寄存器中in个,中断配置看一下NVIC和I2C控制寄存器.
    为什么不用库呢?或者Kinetis SDK ...C:\1325.png

    軟體..

    軟體..
    是指這軟體嗎?

    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2015-1-27 16:28:11 | 显示全部楼层
    是的.这个里面有例程和库,直接用库就可以了.
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4

    主题

    19

    帖子

    0

    注册会员

    Rank: 2

    积分
    90
    最后登录
    2015-4-30
     楼主| 发表于 2015-1-27 16:42:00 | 显示全部楼层
    安 发表于 2015-1-27 16:28
    是的.这个里面有例程和库,直接用库就可以了.

    直接用庫?小的不懂,請版主教一下...
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2015-1-27 17:29:11 | 显示全部楼层
    你看一下
    KSDK_1.1.0\demos\i2c_comm\src
    KSDK_1.1.0\demos\i2c_rtos\src

    例子就明白了,这个里面
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4

    主题

    19

    帖子

    0

    注册会员

    Rank: 2

    积分
    90
    最后登录
    2015-4-30
     楼主| 发表于 2015-1-29 10:33:22 | 显示全部楼层
    本帖最后由 good852 于 2015-1-29 10:35 编辑

    自己找到原因了,因IO被設成開汲極=>PORT_HAL_SetOpenDrainCmd(PORTE_BASE,24u,true);,因為是接示波器無人提供PULL HI  電阻,所以示波器測量到一直無動作...
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-22 10:50 , Processed in 0.096719 second(s), 28 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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