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

YunTu Forum

YTMicro.com
  1. 主页
  2. Discussion & Question
  3. YTM32B1L系列
  4. (SDK)i2c Master使用不带Blocking的函数,无法读取功能。

(SDK)i2c Master使用不带Blocking的函数,无法读取功能。

已定时 已固定 已锁定 已移动 YTM32B1L系列
10 帖子 3 发布者 183 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • L 离线
    L 离线
    李太白
    写于2024年10月5日 06:41 最后由 编辑
    #1

    1)如图,I2c时钟12M,波特400K,模式Fast。 使用带Blocking的函数可以正常读取数据,如下图。
    530ee278-5301-4059-9ac1-06cc2c96a7c9-image.png
    波形正常:
    c65c0b24-2fc6-4205-af48-ccf7647def2e-image.png

    2)使用不带Blocking的函数,
    99a74150-1024-4de5-8f1f-bc435dae280b-image.png
    只有写的波形,正确,但是clock被拉低了:
    c2a7f609-cc1f-4ab0-8b59-a5f86b2fd333-image.png
    没有读的波形,并且进入断点之后,再点运行,SDA线被拉低了,Clock恢复高
    e7c1ee5e-66e9-4838-a920-e5c90394f386-image.png
    ecc27134-ca2b-42ee-b198-e758f770dfd2-image.png

    综上所述:请问为啥不可以直接使用不带Blocking的函数?带Blocking的函数会影响Freertos的工作么?

    莫愁前路无知己

    1 条回复 最后回复
    0
    • L 离线
      L 离线
      李太白
      写于2024年10月6日 04:00 最后由 编辑
      #2

      已经找到问题,是写完之后I2c没有处于idle状态

      莫愁前路无知己

      G 1 条回复 最后回复 2024年10月11日 08:12
      1
      • F 离线
        F 离线
        Frankie YunTu
        写于2024年10月8日 00:05 最后由 编辑
        #3

        FreeRTOS 推荐使用有Block的API,里面会创建信号量(开始传输后会让出CPU)

        L 1 条回复 最后回复 2024年10月8日 01:14
        0
        • L 离线
          L 离线
          李太白
          在 2024年10月8日 01:14 回复了 Frankie 最后由 编辑
          #4

          Frankie 收到~

          莫愁前路无知己

          1 条回复 最后回复
          0
          • G 离线
            G 离线
            gaoSheng
            在 2024年10月11日 08:12 回复了 李太白 最后由 编辑
            #5

            lrx9695 老哥,我遇到类似的问题了,方便把你的情况给我描述一下不😵

            L 1 条回复 最后回复 2024年10月11日 08:14
            0
            • L 离线
              L 离线
              李太白
              在 2024年10月11日 08:14 回复了 gaoSheng 最后由 编辑
              #6

              gaoSheng 我是小学生,就是你使用I2c Master就使用函数接口I2C_DRV_MasterSendDataBlocking,还有I2C_DRV_MasterReceiveDataBlocking。 可以把最后Timeout形参设置为1,避免阻塞任务

              莫愁前路无知己

              G 1 条回复 最后回复 2024年10月11日 08:19
              0
              • G 离线
                G 离线
                gaoSheng
                在 2024年10月11日 08:19 回复了 李太白 最后由 编辑
                #7

                lrx9695 不好意思,之前我没有描述情况,这边是使用I2C_DRV_MasterSendDataBlocking没有问题。使用I2C_DRV_MasterSendData偶尔会出现问题。因为客户实测发现带blocking的耗时会多一点,所以想用不带Blocking的

                L 1 条回复 最后回复 2024年10月11日 08:22
                0
                • L 离线
                  L 离线
                  李太白
                  在 2024年10月11日 08:22 回复了 gaoSheng 最后由 编辑
                  #8

                  gaoSheng 带blocking的不会阻塞太久呀,你设置1ms的超时,也不久呀。因为master写完数据之后需要在中断里设置i2c_idle状态,然后才能实现读取数据的操作。 太快了不行。所以需要给他点时间设置I2c空闲状态。

                  莫愁前路无知己

                  G 1 条回复 最后回复 2024年10月11日 08:28
                  0
                  • G 离线
                    G 离线
                    gaoSheng
                    在 2024年10月11日 08:28 回复了 李太白 最后由 编辑
                    #9

                    lrx9695 非常感谢,我让客户试试😳

                    L 1 条回复 最后回复 2024年10月11日 08:32
                    0
                    • L 离线
                      L 离线
                      李太白
                      在 2024年10月11日 08:32 回复了 gaoSheng 最后由 编辑
                      #10

                      gaoSheng 这么着急么?1ms都等不了。安全气囊么?实际我示波器测试过了,用不了1ms,对任务没影响,。任务Task周期一直稳定,未出现超时等不规则时序

                      莫愁前路无知己

                      1 条回复 最后回复
                      0

                      3/10

                      2024年10月8日 00:05

                      topic:navigator.unread, 7
                    • 云途论坛规则/Yuntu Forum Rules

                      发帖前请查看

                    • YCT离线License申请流程

                      帮助没办法联网的电脑使用YCT

                    • YT CONFIG TOOL调查问卷

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

                    • demo
                      11
                      can
                      8
                      lin stack
                      5
                      yt-link
                      5
                      vscode
                      3
                      adc模块
                      2
                      i2c
                      2
                      uuid
                      2
                      Online Users
                      D
                      dongtian1
                      2分钟之前
                      • 登录

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