You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ESP32-S3初始化TWAI时出现错误帧问题求助

ESP32-S3 TWAI总线复位后出现错误帧问题

问题现象

TWAI总线可正常收发数据帧,但复位ESP32-S3后会触发总线错误帧。经排查,TWAI驱动初始化阶段(twai_driver_install函数执行时),ESP_TX引脚会发送一个短暂负脉冲,该脉冲导致总线进入错误状态。

相关截图说明:

  • 逻辑分析仪截图:GPIO11(TWAI_TX引脚)在驱动初始化过程中出现明显的短暂低电平脉冲
  • CAN工具截图:复位后总线持续上报错误帧

硬件与软件环境

  • 开发板:ESP32-S3-DevKitC-1 v1.0
  • ESP-IDF版本:platform-espressif32 6.4.0
  • CAN收发器:SN65HVD232DR
  • TWAI引脚分配:
    • TX引脚:GPIO_NUM_11
    • RX引脚:GPIO_NUM_12

TWAI初始化代码

// Initialize configuration structures using macro initializers
twai_general_config_t g_config = TWAI_GENERAL_CONFIG_DEFAULT(CAN_TX, CAN_RX, TWAI_MODE_NORMAL);
g_config.tx_queue_len          = 10;
twai_timing_config_t t_config  = TWAI_TIMING_CONFIG_100KBITS();
twai_filter_config_t f_config  = TWAI_FILTER_CONFIG_ACCEPT_ALL();

// Install TWAI driver
// negative pulse occurs in next function
if (twai_driver_install(&g_config, &t_config, &f_config) == ESP_OK) {
    printf("Driver installed\n");
} else {
    printf("Failed to install driver\n");
    return;
}

// Start TWAI driver
if (twai_start() == ESP_OK) {
    printf("Driver started\n");
} else {
    printf("Failed to start driver\n");
    return;
}

已尝试的无效方案

初始化前手动将TX引脚配置为输出并置高,但twai_driver_install函数会重新配置引脚,该操作无法阻止负脉冲产生。

求助

请问如何解决初始化阶段TX引脚负脉冲导致的总线错误问题?


内容的提问来源于stack exchange,提问作者CedricFW

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 13:48:32