大表哥汽车人 2023-03-30 14:59 采纳率: 0%
浏览 103
已结题

英飞凌,TC377,CAN控制器

我在使用英飞凌TC377芯片,当我改变CAN 控制器状态,将

```
CCCRi.INIT -- >NORMAL

```,但是PSRi.ACT一直保持在SYNCHRONIZING状态,应该时IDLE状态才对,我检查了时钟和波特率的设置,没有发现问题,到底是哪里的问题呢?怎么解决?

  • 写回答

6条回答 默认 最新

  • 极客智能体-在线 2023-03-30 20:45
    关注

    以下答案由GPT-3.5大模型与博主波罗歌共同编写:
    根据您提供的信息,您的CAN控制器状态从INIT(初始化)转变为NORMAL,但是PSRi.ACT状态一直保持在SYNCHRONIZING状态。这通常表明您的CAN控制器正在等待同步,因此使用一个正确的时钟可以解决这个问题。

    以下是一些可能有助于解决您的问题的建议:

    1. 确保CAN控制器的时钟源正常连接,并且每个CAN节点的时钟设定相同。因为CAN总线需要在所有节点之间进行同步,否则数据传输将被破坏。

    2. 检查波特率的设置是否正确,确保在所有节点之间使用相同的波特率设置,并确认波特率不太高或太低。频率较高,容易发生同步问题。

    3. 检查CAN总线上是否存在干扰,例如在毗邻的线路上运行的电机或让设备附近在其他电子产品的电磁干扰。

    下面是一个代码示例,可以尝试使用该代码看看是否能够解决问题,代码中假设时钟源是一个外部晶振,波特率设置为500kbps:

    #include <mcp_can.h> //可以使用mcp_can库操作CAN控制器
    #include <SPI.h>
    
    // MCP2515 CAN Module
    MCP_CAN CAN(10); // CS Pin 10 for MCP2515
    
    
    unsigned char canData[8] = {'H', 'E', 'L', 'L', 'O', ' ', 'W', 'D'};
    
    void setup()
    {
      Serial.begin(115200);
    
      if(CAN_OK == CAN.begin(MCP_STDEXT, CAN_500KBPS, MCP_8MHZ))
      {
        Serial.println("CAN BUS Shield init ok!");
      }
      else
      {
        Serial.println("CAN BUS Shield init failed");
      }
    
      CAN.setMode(MCP_NORMAL);
    
        // Send data on CAN BUS
        CAN.sendMsgBuf(0x123, 0, 8, canData);
    }
    
    void loop()
    {
      unsigned char len = 0;
      unsigned char buf[8];
    
      if(CAN_MSGAVAIL == CAN.checkReceive())
      {
        CAN.readMsgBuf(&len, buf);
        Serial.println("-----------------------------");
        Serial.print("Get Data from ID: ");
        Serial.println(CAN.getCanId());
        for(int i = 0; i<len; i++)
        {
          Serial.print(buf[i]);
        }
        Serial.println();
      }
    }
    

    希望这些信息对您有所帮助!
    如果我的回答解决了您的问题,请采纳!

    评论

报告相同问题?

问题事件

  • 系统已结题 4月7日
  • 创建了问题 3月30日

悬赏问题

  • ¥15 静电纺丝煅烧后如何得到柔性纤维
  • ¥15 (标签-react native|关键词-镜像源)
  • ¥100 照片生成3D人脸视频
  • ¥15 伪装视频时长问题修改MP4的时长问题,
  • ¥15 JETSON NANO
  • ¥15 VS开发qt时如何在paintgl函数中用pushbutton控制切换纹理
  • ¥20 关于 openpyxl 处理excel文件地问题
  • ¥15 MS中不知道高分子的构型怎么构建模型
  • ¥60 QQOP数据,什么是op数据号,怎么提取op数据!能不能大量提取(语言-c语言)
  • ¥15 matlab代码 关于微分方程和嵌套的分段函数。