打印
[其他产品]

PIC18F66K80用CAN通信无法发送排查步骤

[复制链接]
6378|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
发GV第几啊|  楼主 | 2024-2-26 12:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在 PIC18F66K80 上实施 CAN 通信时遇到无法发送的问题可能涉及多个方面。以下是一些常见的排查步骤:

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

示例代码中可能包括:

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

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

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


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

示例代码中可能包括:


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



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

示例代码中可能包括:


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

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

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


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

使用特权

评论回复
沙发
单片小菜| | 2024-2-26 17:12 | 只看该作者
CAN总线现在应用在汽车上比较多一些

使用特权

评论回复
板凳
发呆爱好者| | 2024-2-26 17:22 | 只看该作者
发送代码可以挂上逻辑分析仪进行排查的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

276

帖子

0

粉丝