[其他产品] PIC18F66K80用CAN通信无法发送排查步骤

[复制链接]
6802|2
 楼主| 发GV第几啊 发表于 2024-2-26 12:26 | 显示全部楼层 |阅读模式
在 PIC18F66K80 上实施 CAN 通信时遇到无法发送的问题可能涉及多个方面。以下是一些常见的排查步骤:

配置寄存器: 确保 CAN 模块的相关寄存器被正确配置。这包括位率设置、工作模式、过滤器设置等。检查配置是否与你的通信网络设置一致。

示例代码中可能包括:

  1. CANCON = 0x80;  // 请求配置模式
  2. // 进行 CAN 寄存器的配置
  3. // ...
  4. CANCON = 0x00;  // 返回正常模式

检查引脚设置: 确保 CAN 模块的引脚设置正确连接。CAN 通信通常涉及到两个引脚,CAN_TX 和 CAN_RX。确保它们正确连接到你的通信网络。

示例代码中可能包括:
  1. TRISC6 = 0;  // RC6 为 CAN_TX
  2. TRISC7 = 1;  // RC7 为 CAN_RX


检查 CAN 状态: 使用适当的 API 或寄存器读取 CAN 模块的状态,以检查是否存在错误。例如,检查错误计数器和错误标志。

示例代码中可能包括:


  1. if (TXB0CONbits.TXREQ == 0) {
  2.     // TXREQ 为 0 表示 TXB0 寄存器为空,可以发送消息
  3.     // 发送 CAN 消息的代码
  4. }



错误处理: 实现适当的错误处理机制。如果检测到错误,你可能需要清除错误并重新尝试。

示例代码中可能包括:


  1. if (PIR5bits.ERRIF) {
  2.     // 处理错误
  3.     PIR5bits.ERRIF = 0;  // 清除错误标志
  4. }
检查电源和物理连接: 确保 CAN 模块的电源正常,并检查物理连接,确保电缆和连接正确。

使用示波器: 如果可能,使用示波器监视 CAN_TX 和 CAN_RX 引脚,确保发送的消息被正确传输。

如果在这些步骤中未找到问题,可能需要更详细的调试。


在调试期间,使用适当的工具和调试功能,例如使用 Microchip 的 MPLAB X IDE 和相关的调试器或仿真器。

单片小菜 发表于 2024-2-26 17:12 | 显示全部楼层
CAN总线现在应用在汽车上比较多一些
发呆爱好者 发表于 2024-2-26 17:22 | 显示全部楼层
发送代码可以挂上逻辑分析仪进行排查的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

323

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部