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

YunTu Forum

YTMicro.com
  1. 主页
  2. Discussion & Question
  3. YTM32B1M系列
  4. 同一个物理引脚在不同时间段切换CAN和GPIO工作模式

同一个物理引脚在不同时间段切换CAN和GPIO工作模式

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

    YTM32B1MC03中让PTC6引脚在不同时间段切换不同的工作模式,平时作为CAN_RX接收报文,休眠前一段时间为GPIO的ICU模式监控总线情况,目前将CAN的RX(PTC_6)配置为ICU,初始化时程序停在了ICU的初始化中的/Clear pin interrupt flag/ICU_GPIO_REG_ADDR32_INDEX_W1C_BIT(GPIO_PIFR_ADDR32(PortInstance), PortChannel);什么原因,该怎么解决呀?f2287ff2-c18f-4dd9-8025-48509f138e7f-278a9b58a44d29f6dcc66bb853185f85.png

    WRW 1 条回复 最后回复
    0
    • KirkK 离线
      KirkK 离线
      Kirk YunTu
      编写于 最后由 编辑
      #13

      您可以尝试用 ESR1[RX] 这个寄存器去判断 CAN 总线上是否有报文。休眠前 while 循环获取 ESR1[RX],如果出现 ESR1[RX] 为 1 情况就代表总线上有 CAN 报文,然后退出休眠逻辑,只有在一段时间内循环获取 ESR1[RX] 都为 0 的时候,表示 CAN 总线上无报文,可以执行休眠逻辑

      1 条回复 最后回复
      0
      • janJ 离线
        janJ 离线
        jan YunTu
        编写于 最后由 编辑
        #2

        初始化Icu前已经把PTC6引脚切换成GPIO模式了吗

        chenchaoC 2 条回复 最后回复
        0
        • chenchaoC 离线
          chenchaoC 离线
          chenchao
          回复了jan 最后由 编辑
          #3

          jan 在 同一个物理引脚在不同时间段切换CAN和GPIO工作模式 中说:

          初始化Icu前已经把PTC6引脚切换成GPIO模式了吗

          没有切换,如果需要在不同时间段切换CAN和ICU模式监控,初始化时该怎么做,切换后CAN还可以正常使用吗?

          1 条回复 最后回复
          0
          • chenchaoC 离线
            chenchaoC 离线
            chenchao
            回复了jan 最后由 编辑
            #4

            jan 在 同一个物理引脚在不同时间段切换CAN和GPIO工作模式 中说:

            初始化Icu前已经把PTC6引脚切换成GPIO模式了吗

            我试了一下,在ICU初始化前切换成GPIO模式,程序还是停在了ICU的初始化中的/Clear pin interrupt flag/ICU_GPIO_REG_ADDR32_INDEX_W1C_BIT(GPIO_PIFR_ADDR32(PortInstance), PortChannel);6a636499-54e1-440e-8fc2-ef758485ec18-image.png

            1 条回复 最后回复
            0
            • 向阳向 离线
              向阳向 离线
              向阳 YunTu
              编写于 最后由 编辑
              #5
              此主題已被删除!
              1 条回复 最后回复
              0
              • 向阳向 离线
                向阳向 离线
                向阳 YunTu
                编写于 最后由 编辑
                #6

                如果关了的话是改不动的

                chenchaoC 1 条回复 最后回复
                0
                • chenchaoC 离线
                  chenchaoC 离线
                  chenchao
                  回复了向阳 最后由 编辑
                  #7

                  向阳 在 同一个物理引脚在不同时间段切换CAN和GPIO工作模式 中说:

                  如果关了的话是改不动的

                  您好,没明白您的意思,是什么关闭无法修改,想实现CANRX引脚在不同时间段切换CAN和ICU监控是否可行?该如何配置,麻烦您可以指导一下不?

                  1 条回复 最后回复
                  0
                  • janJ 离线
                    janJ 离线
                    jan YunTu
                    编写于 最后由 编辑
                    #8

                    请问你用的MCAL哪个版本的代码。

                    chenchaoC 1 条回复 最后回复
                    0
                    • KirkK 离线
                      KirkK 离线
                      Kirk YunTu
                      编写于 最后由 编辑
                      #9

                      请问您将 CAN_RX 在休眠前切换成 ICU 捕获的目的是不是想监测 CAN 总线上是否还有报文?您们的需求是否是必须检测 CAN 总线上没有报文后才允许执行休眠逻辑是吗

                      chenchaoC 1 条回复 最后回复
                      0
                      • chenchaoC 离线
                        chenchaoC 离线
                        chenchao
                        回复了jan 最后由 编辑
                        #10

                        jan 在 同一个物理引脚在不同时间段切换CAN和GPIO工作模式 中说:

                        请问你用的MCAL哪个版本的代码。
                        用的2.3.0的,目前这个问题解决了,是CanEnableUserModeSupport勾选了,ICU的没勾

                        1 条回复 最后回复
                        0
                        • WRW 离线
                          WRW 离线
                          WR YunTu
                          回复了chenchao 最后由 编辑
                          #11

                          chenchao 你代码卡死有没有进MemManage_Handler

                          1 条回复 最后回复
                          0
                          • chenchaoC 离线
                            chenchaoC 离线
                            chenchao
                            回复了Kirk 最后由 编辑
                            #12

                            Kirk 在 同一个物理引脚在不同时间段切换CAN和GPIO工作模式 中说:

                            请问您将 CAN_RX 在休眠前切换成 ICU 捕获的目的是不是想监测 CAN 总线上是否还有报文?您们的需求是否是必须检测 CAN 总线上没有报文后才允许执行休眠逻辑是吗

                            目的是在休眠前关闭CAN的一段时间监测 CAN 总线上是否还有报文,若这段时间检测到就触发中断重启CAN模块

                            1 条回复 最后回复
                            0
                            • KirkK 离线
                              KirkK 离线
                              Kirk YunTu
                              编写于 最后由 编辑
                              #13

                              您可以尝试用 ESR1[RX] 这个寄存器去判断 CAN 总线上是否有报文。休眠前 while 循环获取 ESR1[RX],如果出现 ESR1[RX] 为 1 情况就代表总线上有 CAN 报文,然后退出休眠逻辑,只有在一段时间内循环获取 ESR1[RX] 都为 0 的时候,表示 CAN 总线上无报文,可以执行休眠逻辑

                              1 条回复 最后回复
                              0
                              • ,FrankieF Frankie 将这个主题转为问答主题
                              • ,FrankieF Frankie 将这个主题标记为已解决

                            • 云途开发生态介绍

                              快速上手云途开发生态

                            • 云途论坛规则/Yuntu Forum Rules

                              发帖前请查看

                            • YT CONFIG TOOL调查问卷

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

                            • can
                              25
                              demo
                              22
                              lin stack
                              13
                              uds
                              13
                              md14
                              6
                              yt-link
                              6
                              fbl
                              5
                              adc模块
                              4
                              Online Users
                              YTuser3295Y
                              YTuser3295
                              jin_yiJ
                              jin_yi
                              • 登录

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