Peripherals
双线汽车接口 (TWAI)
TWAI 提供一套全新驱动接口以支持更多更方便的功能,请参考编程指南 双线汽车接口 (TWAI).
相较于老驱动,新版驱动主要亮点有:
事件驱动,支持注册多种回调函数
支持运行时更改波特率、过滤器配置
提供更友好直观的波特率配置、过滤器配置方法
支持 ESP32C5 及其 FD(Flexible Datarate, 灵活数据速率)功能
支持多个 TWAI 控制器同时使用
新驱动位于 esp_driver_twai 组件中,添加该组件依赖即可使用。包含头文件为 esp_driver_twai/include/esp_twai.h 和 esp_driver_twai/include/esp_twai_onchip.h。
删除/弃用项目 |
替代 |
备注 |
---|---|---|
twai_read_alerts |
无 |
需要注册 on_state_change 和 on_error 回调来获取状态转换和在错误信息 |
twai_receive |
twai_node_receive_from_isr |
只能在 on_rx_done 回调中使用该函数 |
twai_clear_transmit_queue |
无 |
暂不支持 |
twai_clear_receive_queue |
无 |
receive 是事件驱动的,暂不提供阻塞版本的函数 |
尽管我们推荐使用新的驱动 API,但旧版驱动仍然可用,其头文件引用路径为 driver/twai.h
。继续使用旧版驱动请注意:
新旧驱动不互相兼容,不可混合使用,否则将在启动时打印警告,甚至崩溃并重启。可打开配置项 CONFIG_TWAI_SKIP_LEGACY_CONFLICT_CHECK 以屏蔽该检查。
旧版驱动将不再添加新特性(如 TWAIFD)的支持。