跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
折叠
品牌标识

YunTu Forum

YTMicro.com
  1. 主页
  2. Discussion & Question
  3. YTM32B1M系列
  4. 关于MC0系列的I2C从机模式时钟延展功能的问题

关于MC0系列的I2C从机模式时钟延展功能的问题

已定时 已固定 已锁定 已移动 YTM32B1M系列
4 帖子 2 发布者 693 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • yifeng_xieY 离线
    yifeng_xieY 离线
    yifeng_xie
    写于 最后由 编辑
    #1

    04039cbf-201c-4e88-9f66-567a407c98c5-49f30778b0db675d38cb0e6e0ad3abf8.png
    如上图所示,当MC0为从机的时候,I2C从机的时钟延展功能在初始化时就被启用了。

    673f02b2-125c-4960-9aab-00b2c668f3b8-image.png
    在RM中看到上图描述,这段说得是时钟延展的触发时机。
    在中断回调中处理事件I2C_SLAVE_EVENT_TX_REQ时,如果发送的数据没有准备好,是不是要一直等待到数据准备好的那刻才能调用函数I2C_DRV_SlaveSetTxBuffer呢?官方推荐什么时候调用函数I2C_DRV_SlaveSetTxBuffer呢?

    fb4b19ef-b48f-401a-9e95-77775914653c-image.png
    我在实测中发现接收任务时产生中断回调事件I2C_SLAVE_EVENT_STOP,在中断内将待发送的数据准备好然后调用函数I2C_DRV_SlaveSetTxBuffer,会偶发NACK。请问这样操作对吗?为什么会出现偶发NACK的现象呢?

    1 条回复 最后回复
    0
    • sunxuehuS 离线
      sunxuehuS 离线
      sunxuehu
      写于 最后由 编辑
      #2

      不是数据准备好才调用I2C_DRV_SlaveSetTxBuffer,而是你调用了I2C_DRV_SlaveSetTxBuffer才准备好了数据。stall只是因为没有来的及进入中断去往寄存器里面写data或者读data。

      1 条回复 最后回复
      0
      • sunxuehuS 离线
        sunxuehuS 离线
        sunxuehu
        写于 最后由 编辑
        #3

        I2C_DRV_SlaveSetTxBuffer这是只是在监听模式下才会使用,具体使用参考LE0的i2c slave demo

        1 条回复 最后回复
        0
        • sunxuehuS 离线
          sunxuehuS 离线
          sunxuehu
          写于 最后由 编辑
          #4

          I2C_SLAVE_EVENT_STOP的事件产生一般是收到stop signal;一般master收到NACK后就会发送stop signal

          1 条回复 最后回复
          0

        • 云途开发生态介绍

          快速上手云途开发生态

        • 云途论坛规则/Yuntu Forum Rules

          发帖前请查看

        • YT CONFIG TOOL调查问卷

          帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...

        • can
          20
          demo
          20
          uds
          13
          lin stack
          10
          md14
          6
          fbl
          5
          yt-link
          5
          adc模块
          4
          Online Users
          YQHY
          YQH
          z123456111Z
          z123456111
          FrankieF
          Frankie
          frankieqqF
          frankieqq
          ColinC
          Colin
          AlexzA
          Alexz
          HAIYANGH
          HAIYANG
          SelinhuangS
          Selinhuang
          PedroCaoP
          PedroCao
          majorM
          major
          车友车行车
          车友车行
          zhaodong1Z
          zhaodong1
          jinyiJ
          jinyi
          limanjiangL
          limanjiang
          yt0503Y
          yt0503
          runR
          run
          DerrickD
          Derrick
          • 登录

          • 登录或注册以进行搜索。
          • 第一个帖子
            最后一个帖子
          0
          • 版块
          • 最新
          • 标签
          • 热门