{"id":3011,"date":"2024-11-21T16:18:11","date_gmt":"2024-11-21T08:18:11","guid":{"rendered":"https:\/\/saludpcb.com\/zh\/?p=3011"},"modified":"2025-09-26T06:16:04","modified_gmt":"2025-09-25T22:16:04","slug":"esp32-can-bus-complete-guide-sending-receiving","status":"publish","type":"post","link":"https:\/\/saludpcb.com\/zh\/esp32-can-bus-complete-guide-sending-receiving\/","title":{"rendered":"\u7cbe\u901a ESP32 CAN Bus | \u5b8c\u6574\u7684\u767c\u9001\u8207\u63a5\u6536\u6578\u64da\u6307\u5357"},"content":{"rendered":"\n<hr class=\"wp-block-separator alignwide has-text-color has-palette-color-1-color has-alpha-channel-opacity has-palette-color-1-background-color has-background is-style-wide\"\/>\n\n\n\n<p>\u5728\u73fe\u4ee3\u5d4c\u5165\u5f0f\u7cfb\u7d71\u4e2d\uff0cCAN (Controller Area Network) Bus \u662f\u4e00\u7a2e\u975e\u5e38\u91cd\u8981\u7684\u901a\u8a0a\u5354\u5b9a\uff0c\u5c24\u5176\u5728\u6c7d\u8eca\u96fb\u5b50\u548c\u5de5\u696d\u63a7\u5236\u9818\u57df\u3002\u672c\u6587\u5c07\u8a73\u7d30\u4ecb\u7d39\u5982\u4f55\u4f7f\u7528 ESP32 \u548c ESP-IDF \u6846\u67b6\u958b\u767c CAN Bus (\u532f\u6d41\u6392) \u9a45\u52d5\u7a0b\u5f0f\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/saludpcb.com\/zh\/wp-content\/uploads\/2024\/11\/Mastering-ESP32-CAN-Bus-Complete-Guide-for-Sending-and-Receiving-Data.jpg\" alt=\"CAM Bus\" class=\"wp-image-3024\" title=\"\" srcset=\"https:\/\/saludpcb.com\/zh\/wp-content\/uploads\/2024\/11\/Mastering-ESP32-CAN-Bus-Complete-Guide-for-Sending-and-Receiving-Data.jpg 1024w, https:\/\/saludpcb.com\/zh\/wp-content\/uploads\/2024\/11\/Mastering-ESP32-CAN-Bus-Complete-Guide-for-Sending-and-Receiving-Data-768x768.jpg 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<div class=\"wp-block-rank-math-toc-block\" id=\"rank-math-toc\"><h2>\u5167\u5bb9<\/h2><nav><ul><li class=\"\"><a href=\"#introduction\">\u7c21\u4ecb<\/a><\/li><li class=\"\"><a href=\"#why-use-dma-and-i-2-s-with-adc-on-esp-32-1\">\u4ec0\u9ebc\u662f CAN Bus?<\/a><\/li><li class=\"\"><a href=\"#why-use-dma-and-i-2-s-with-adc-on-esp-32\">\u958b\u767c\u74b0\u5883<\/a><\/li><li class=\"\"><a href=\"#setting-up-i-2-s-and-dma-for-adc-data-collection\">\u8207 SN65HVD230 \u7684\u63a5\u7dda\u5716<\/a><\/li><li class=\"\"><a href=\"#\u7de8\">\u7de8\u5beb\u4ee3\u78bc<\/a><\/li><li class=\"\"><a href=\"#\u4ee3\u78bc\u89e3\u91cb\">\u4ee3\u78bc\u89e3\u91cb<\/a><\/li><li class=\"\"><a href=\"#\u7bc4\u4f8b\u8f38\u51fa\u65e5\u5fd7\uff1a-1\">\u7d50\u679c\u8f38\u51fa<\/a><\/li><li class=\"\"><a href=\"#conclusion\">\u7d50\u8ad6<\/a><\/li><\/ul><\/nav><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"introduction\">\u7c21\u4ecb<\/h2>\n\n\n\n<p>\u5728 ESP32 \u4e2d\uff0cCAN \u901a\u4fe1\u7531&nbsp;<strong>TWAI (Two-Wire Automotive Interface)<\/strong>&nbsp;\u786c\u9ad4\u6a21\u584a\u9a45\u52d5\uff0c\u5b8c\u5168\u517c\u5bb9 CAN 2.0 \u5354\u8b70\u6a19\u6e96\u3002\u9019\u4f7f\u5f97 ESP32 \u4e0d\u50c5\u53ef\u4ee5\u53c3\u8207 CAN Bus \u7db2\u8def\u4e2d\u7684\u6578\u64da\u4ea4\u63db\uff0c\u9084\u80fd\u6191\u85c9\u5176\u5167\u5efa\u7684\u8655\u7406\u80fd\u529b\uff0c\u5145\u7576\u7db2\u95dc\u3001\u6578\u64da\u8a18\u9304\u5668\u6216\u7bc0\u9ede\u63a7\u5236\u5668\u7b49\u89d2\u8272\u3002\u6b64\u5916\uff0cESP32 \u7684\u9748\u6d3b\u6027\u5141\u8a31\u958b\u767c\u8005\u7d50\u5408 CAN \u8207 Wi-Fi \u6216\u85cd\u7259\uff0c\u5be6\u73fe\u9060\u7a0b\u76e3\u63a7\u8207\u8a3a\u65b7\u7b49\u9ad8\u7d1a\u529f\u80fd\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"why-use-dma-and-i-2-s-with-adc-on-esp-32-1\">\u4ec0\u9ebc\u662f CAN Bus?<\/h2>\n\n\n\n<p><strong>CAN Bus<\/strong>&nbsp;(Controller Area Network Bus) \u662f\u4e00\u7a2e\u9ad8\u6548\u7684\u4e32\u884c\u901a\u8a0a\u5354\u8b70\uff0c\u6700\u521d\u7531&nbsp;<strong>Bosch<\/strong>&nbsp;\u5728 1980 \u5e74\u4ee3\u70ba\u6c7d\u8eca\u61c9\u7528\u8a2d\u8a08\uff0c\u73fe\u5728\u5ee3\u6cdb\u61c9\u7528\u65bc\u591a\u500b\u9818\u57df\uff0c\u5305\u62ec\u5de5\u696d\u81ea\u52d5\u5316\u3001\u6a5f\u5668\u4eba\u3001\u91ab\u7642\u8a2d\u5099\u548c\u5bb6\u5c45\u81ea\u52d5\u5316\u3002<\/p>\n\n\n\n<p><strong>CAN Bus \u7684\u7279\u6027<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u591a\u4e3b\u67b6\u69cb\uff1a<\/strong>&nbsp;\u652f\u63f4\u591a\u500b\u8a2d\u5099\u4e92\u806f\uff0c\u4efb\u4f55\u7bc0\u9ede\u90fd\u53ef\u767c\u8d77\u901a\u4fe1\u3002<\/li>\n\n\n\n<li><strong>\u9ad8\u53ef\u9760\u6027\uff1a<\/strong>&nbsp;\u5167\u5efa\u932f\u8aa4\u6aa2\u6e2c\u548c\u5bb9\u932f\u529f\u80fd\uff0c\u6578\u64da\u50b3\u8f38\u7a69\u5b9a\u3002<\/li>\n\n\n\n<li><strong>\u5dee\u5206\u4fe1\u865f\uff1a<\/strong>&nbsp;\u4f7f\u7528 CANH \u548c CANL\uff0c\u6297\u5e72\u64fe\u80fd\u529b\u5f37\u3002<\/li>\n\n\n\n<li><strong>\u512a\u5148\u7d1a\u6a5f\u5236\uff1a<\/strong>&nbsp;\u9ad8\u512a\u5148\u7d1a\u6578\u64da\u5148\u88ab\u50b3\u8f38\u3002<\/li>\n\n\n\n<li><strong>\u652f\u63f4\u591a\u7bc0\u9ede\uff1a<\/strong>&nbsp;\u6700\u591a\u9023\u63a5 120 \u500b\u8a2d\u5099\u3002<\/li>\n\n\n\n<li><strong>\u7f3a\u9ede : <\/strong>\u6ce2\u7279\u7387\u6709\u9650\u3001\u6578\u64da\u8ca0\u8f09\u8f03\u5c0f\uff08\u6700\u591a\u53ea\u80fd\u50b3\u8f38 8 \u5b57\u7bc0\u7684\u6578\u64da\uff09\u3001\u786c\u9ad4\u9700\u6c42\u76f8\u5c0d\u8f03\u9ad8\u3002<\/li>\n<\/ul>\n\n\n\n<p>\u4ee5\u4e0b\u662f\u4f7f\u7528\u4e2d\u6587\u7684 CAN \u7e3d\u7dda\u63a5\u7dda\u5716\uff0c\u4e26\u8aaa\u660e\u6bcf\u500b\u8a2d\u5099\u90fd\u64c1\u6709\u5404\u81ea\u7684 CAN \u6536\u767c\u5668\u6a21\u7d44\uff08\u4f8b\u5982\uff1aSN65HVD230\uff09\u7684\u60c5\u6cc1\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">      +--------+           +--------+           +--------+\n      | CAN    |           | CAN    |           | CAN    |\n      | Device |           | Device |           | Device |\n      | (e.g., |           | (e.g., |           | (e.g., |\n      | ESP32) |           | Sensor)|           | MCU)   |\n      +--------+           +--------+           +--------+\n           |                   |                   |\n     +---------+          +---------+          +---------+\n     | CAN_H   |----------| CAN_H   |----------| CAN_H   |\n     +---------+          +---------+          +---------+\n           |                   |                   |\n     +---------+          +---------+          +---------+\n     | CAN_L   |----------| CAN_L   |----------| CAN_L   |\n     +---------+          +---------+          +---------+\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"why-use-dma-and-i-2-s-with-adc-on-esp-32\">\u958b\u767c\u74b0\u5883<\/h2>\n\n\n\n<p>\u5728\u958b\u59cb\u7de8\u7a0b\u4e4b\u524d\uff0c\u8acb\u78ba\u4fdd\u5df2\u5b8c\u6210\u4ee5\u4e0b\u6e96\u5099\u5de5\u4f5c\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/saludpcb.com\/zh\/esp32-tutorial-how-to-create-an-esp32-project-with-vscode\/\">\u5b89\u88dd ESP-IDF \u958b\u767c\u74b0\u5883<\/a> (\u81f3\u5c11\u7248\u672c v4.4 \u6216\u66f4\u9ad8)\u3002<\/li>\n\n\n\n<li><a href=\"https:\/\/saludpcb.com\/zh\/esp32-devkit-module-pinout\/\">ESP32 \u958b\u767c\u677f<\/a>\u3002<\/li>\n\n\n\n<li>CAN \u6536\u767c\u5668\u6a21\u7d44 (\u4f8b\u5982 MCP2551 \u6216 <a href=\"https:\/\/www.ti.com\/product\/SN65HVD230\" target=\"_blank\" rel=\"noopener\">SN65HVD230<\/a>)\u3002<\/li>\n\n\n\n<li>CAN \u8a2d\u5099\u6216\u6a21\u64ec\u5668\u4ee5\u9032\u884c\u6e2c\u8a66 (\u53ef\u9078)\u3002<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"setting-up-i-2-s-and-dma-for-adc-data-collection\">\u8207 SN65HVD230 \u7684\u63a5\u7dda\u5716<\/h2>\n\n\n\n<p>\u4ee5\u4e0b\u662f\u7528 ASCII \u78bc\u7e6a\u88fd\u7684\u63a5\u7dda\u5716\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">+------------+          +-------------------+         +---------+\n|   ESP32    |          | SN65HVD230 (CAN)  |         |   CAN   |\n|            |          |                   |         | Device  |\n|   GPIO4 ---+---------&gt;| TXD               |         |         |\n|   GPIO5 ---+---------&gt;| RXD               |         |         |\n|    GND  ---+---------&gt;| GND               |         |         |\n|    3V3  ---+---------&gt;| VCC               |         |         |\n|            |          | CANH --- CAN Bus  |---------|  CANH   |\n|            |          | CANL --- CAN Bus  |---------|  CANL   |\n+------------+          +-------------------+         +---------+<\/code><\/pre>\n\n\n\n<p><strong>ESP32 \u548c SN65HVD230 \u7684\u4fe1\u865f\u9023\u63a5\uff1a<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>ESP32 \u7684 GPIO4 \u2192&nbsp;<strong>SN65HVD230 \u7684 TXD<\/strong>&nbsp;(\u8cc7\u6599\u50b3\u8f38)<\/li>\n\n\n\n<li>ESP32 \u7684 GPIO5 \u2192&nbsp;<strong>SN65HVD230 \u7684 RXD<\/strong>&nbsp;(\u8cc7\u6599\u63a5\u6536)<\/li>\n\n\n\n<li>\u78ba\u4fdd ESP32 \u548c\u5176\u4ed6 CAN \u532f\u6d41\u6392\u7bc0\u9ede\u7684\u6ce2\u7279\u7387\u4e00\u81f4\uff0c\u5426\u5247\u7121\u6cd5\u6b63\u5e38\u901a\u4fe1\u3002<\/li>\n<\/ul>\n\n\n\n<p><strong>\u96fb\u6e90\u8207\u5730\u7dda\uff1a<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>ESP32 \u7684&nbsp;<strong>3V3<\/strong>&nbsp;\u2192 SN65HVD230 \u7684&nbsp;<strong>VCC<\/strong>&nbsp;(\u4f9b\u96fb)<\/li>\n\n\n\n<li>ESP32 \u7684&nbsp;<strong>GND<\/strong>&nbsp;\u2192 SN65HVD230 \u7684&nbsp;<strong>GND<\/strong>&nbsp;(\u63a5\u5730)<\/li>\n\n\n\n<li>ESP32 \u4f7f\u7528 3.3V\uff0cSN65HVD230 \u7684 VCC \u5fc5\u9808\u63a5 3.3V \u4ee5\u907f\u514d\u71d2\u6bc0\u8a2d\u5099\u3002<\/li>\n<\/ul>\n\n\n\n<p><strong>CANH \u548c CANL\uff1a<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>SN65HVD230 \u7684 CANH<\/strong>&nbsp;\u2192 \u9023\u63a5\u5230 CAN Bus \u7684\u9ad8\u96fb\u5e73 (CAN High)\u3002<\/li>\n\n\n\n<li><strong>SN65HVD230 \u7684 CANL<\/strong>&nbsp;\u2192 \u9023\u63a5\u5230 CAN Bus \u7684\u4f4e\u96fb\u5e73 (CAN Low)\u3002<\/li>\n\n\n\n<li>\u5982\u679c CAN \u7db2\u8def\u9700\u8981\u7d42\u7aef\u96fb\u963b\uff0c\u8acb\u5728 <strong>CANH \u548c CANL<\/strong>&nbsp;\u4e4b\u9593\u63a5\u5169\u7aef\u63a5\u4e0a&nbsp;<strong>120\u03a9 \u96fb\u963b<\/strong>\uff0c\u4ee5\u78ba\u4fdd\u6578\u64da\u50b3\u8f38\u7684\u7a69\u5b9a\u6027\u3002<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"\u7de8\">\u7de8\u5beb\u4ee3\u78bc<\/h2>\n\n\n\n<p>ESP-IDF \u63d0\u4f9b\u4e86\u4e00\u500b\u5167\u5efa\u7684 CAN \u9a45\u52d5\u7a0b\u5f0f (\u7a31\u70ba TWAI \u9a45\u52d5\u7a0b\u5f0f)\u3002\u4ee5\u4e0b\u662f\u914d\u7f6e\u548c\u521d\u59cb\u5316 TWAI \u9a45\u52d5\u7684\u6b65\u9a5f\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"cpp\" class=\"language-cpp\">#include \"driver\/twai.h\"  \/\/ Include the TWAI (CAN) driver library\n#include \"esp_log.h\"      \/\/ Include ESP logging library\n\n#define TAG \"CAN_DRIVER\"  \/\/ Define a tag for logging messages\n\nvoid app_main() {\n    \/\/ Configure the CAN driver parameters\n    twai_general_config_t g_config = TWAI_GENERAL_CONFIG_DEFAULT(GPIO_NUM_21, GPIO_NUM_22, TWAI_MODE_NORMAL);\n    twai_timing_config_t t_config = TWAI_TIMING_CONFIG_500KBITS();\n    twai_filter_config_t f_config = TWAI_FILTER_CONFIG_ACCEPT_ALL();\n\n    \/\/ Initialize the CAN driver\n    if (twai_driver_install(&amp;g_config, &amp;t_config, &amp;f_config) == ESP_OK) {\n        ESP_LOGI(TAG, \"TWAI driver installed successfully\");\n    } else {\n        ESP_LOGE(TAG, \"Failed to install TWAI driver\");\n        return; \/\/ Exit the function if driver installation fails\n    }\n\n    \/\/ Start the CAN driver\n    if (twai_start() == ESP_OK) {\n        ESP_LOGI(TAG, \"TWAI driver started successfully\");\n    } else {\n        ESP_LOGE(TAG, \"Failed to start TWAI driver\");\n        return; \/\/ Exit the function if driver start fails\n    }\n\n    \/\/ Prepare a message to send\n    twai_message_t tx_message;          \n    tx_message.identifier = 0x100;     \n    tx_message.data_length_code = 8;   \n    for (int i = 0; i &lt; 8; i++) {      \n        tx_message.data[i] = i;        \n    }\n\n    \/\/ Transmit the message\n    if (twai_transmit(&amp;tx_message, pdMS_TO_TICKS(1000)) == ESP_OK) {\n        ESP_LOGI(TAG, \"Message transmitted\");\n    } else {\n        ESP_LOGE(TAG, \"Failed to transmit message\");\n    }\n\n    \/\/ Receive a message\n    twai_message_t rx_message;  \/\/ Declare a message structure for receiving\n    if (twai_receive(&amp;rx_message, pdMS_TO_TICKS(1000)) == ESP_OK) {\n        ESP_LOGI(TAG, \"Message received\");\n        ESP_LOGI(TAG, \"ID: 0x%x, DLC: %d, Data:\", rx_message.identifier, rx_message.data_length_code);\n        for (int i = 0; i &lt; rx_message.data_length_code; i++) {\n            ESP_LOGI(TAG, \"Data[%d]: 0x%x\", i, rx_message.data[i]);\n        }\n    } else {\n        ESP_LOGE(TAG, \"Failed to receive message\");\n    }\n\n    \/\/ Stop and uninstall the CAN driver\n    twai_stop();                         \n    twai_driver_uninstall();             \n    ESP_LOGI(TAG, \"TWAI driver uninstalled\");\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"\u4ee3\u78bc\u89e3\u91cb\"><strong>\u4ee3\u78bc\u89e3\u91cb<\/strong><\/h2>\n\n\n\n<p><strong>\u914d\u7f6e\u53c3\u6578\uff1a<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>TWAI_GENERAL_CONFIG_DEFAULT<\/code>&nbsp;\u7528\u65bc\u8a2d\u7f6e GPIO \u5f15\u8173\u4ee5\u53ca\u5de5\u4f5c\u6a21\u5f0f\u3002<\/li>\n\n\n\n<li><code>TWAI_TIMING_CONFIG_500KBITS<\/code>&nbsp;\u8a2d\u7f6e CAN \u532f\u6d41\u6392\u4f4d\u901f\u7387 (\u9019\u88e1\u70ba 500 kbps)\u3002<\/li>\n\n\n\n<li><code>TWAI_FILTER_CONFIG_ACCEPT_ALL<\/code>&nbsp;\u914d\u7f6e\u63a5\u53d7\u6240\u6709 CAN \u6d88\u606f\u7684\u904e\u6ffe\u5668\u3002<\/li>\n<\/ul>\n\n\n\n<p><strong>\u521d\u59cb\u5316\u8207\u555f\u52d5\uff1a<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>twai_driver_install<\/code>&nbsp;\u4f86\u521d\u59cb\u5316\u9a45\u52d5\u7a0b\u5f0f\u3002<\/li>\n\n\n\n<li><code>twai_start<\/code>&nbsp;\u958b\u555f\u9a45\u52d5\u7a0b\u5f0f\u3002<\/li>\n<\/ul>\n\n\n\n<p><strong>\u767c\u9001\u548c\u63a5\u6536\u6d88\u606f\uff1a<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>twai_message_t<\/code>&nbsp;\u7d50\u69cb\u9ad4\u5305\u542b CAN \u6d88\u606f\u7684 ID\u3001\u6578\u64da\u9577\u5ea6\u4ee5\u53ca\u5be6\u969b\u6578\u64da\u3002<\/li>\n\n\n\n<li><code>twai_transmit<\/code>&nbsp;\u7528\u65bc\u767c\u9001\u6d88\u606f\u3002<\/li>\n\n\n\n<li><code>twai_receive<\/code> \u51fd\u6578\u63a5\u6536\u4f86\u81ea CAN \u532f\u6d41\u6392\u7684\u8a0a\u606f<\/li>\n<\/ul>\n\n\n\n<p><strong>\u505c\u6b62\u8207\u5378\u8f09\uff1a<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u505c\u6b62\u9a45\u52d5\u7a0b\u5f0f\u4e26\u91cb\u653e\u8cc7\u6e90\u4ee5\u6e05\u7406\u74b0\u5883\u3002<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"\u7bc4\u4f8b\u8f38\u51fa\u65e5\u5fd7\uff1a-1\">\u7d50\u679c<strong>\u8f38\u51fa<\/strong><\/h2>\n\n\n\n<p>\u4ee5\u4e0b\u662f\u7a0b\u5f0f\u78bc\u57f7\u884c\u5f8c\u5728\u4e32\u5217\u76e3\u8996\u5668\uff08Serial Monitor\uff09\u4e0a\u53ef\u80fd\u770b\u5230\u7684\u8f38\u51fa\u6a21\u64ec\u7d50\u679c\uff0c\u5047\u8a2d\u4e00\u5207\u6b63\u5e38\u904b\u884c\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">I (10) CAN_DRIVER: TWAI driver installed successfully\nI (20) CAN_DRIVER: TWAI driver started successfully\nI (30) CAN_DRIVER: Message transmitted\nI (40) CAN_DRIVER: Message received\nI (40) CAN_DRIVER: ID: 0x100, DLC: 8, Data:\nI (40) CAN_DRIVER: Data[0]: 0x0\nI (40) CAN_DRIVER: Data[1]: 0x1\nI (40) CAN_DRIVER: Data[2]: 0x2\nI (40) CAN_DRIVER: Data[3]: 0x3\nI (40) CAN_DRIVER: Data[4]: 0x4\nI (40) CAN_DRIVER: Data[5]: 0x5\nI (40) CAN_DRIVER: Data[6]: 0x6\nI (40) CAN_DRIVER: Data[7]: 0x7\nI (50) CAN_DRIVER: TWAI driver uninstalled<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><code>TWAI driver installed successfully<\/code> : <\/strong>\u9a45\u52d5\u7a0b\u5f0f\u5df2\u6210\u529f\u521d\u59cb\u5316\uff0c\u8868\u793a TWAI \u786c\u9ad4\u548c\u8a2d\u7f6e\u672a\u51fa\u73fe\u554f\u984c\u3002<\/li>\n\n\n\n<li><strong><code>TWAI driver started successfully<\/code> :<\/strong> \u9a45\u52d5\u7a0b\u5f0f\u5df2\u555f\u52d5\uff0c\u8a2d\u5099\u53ef\u4ee5\u767c\u9001\u6216\u63a5\u6536 CAN \u6d88\u606f\u3002<\/li>\n\n\n\n<li><strong><code>Message transmitted<\/code> : <\/strong>\u6d88\u606f\u5df2\u6210\u529f\u767c\u9001\u81f3 CAN \u7dda\u8def\u3002<\/li>\n\n\n\n<li><strong>Message received<\/strong> : \u8868\u793a ESP32 \u5df2\u6210\u529f\u63a5\u6536\u5230\u4e00\u689d CAN \u6d88\u606f\uff0c\u9019\u8aaa\u660e\u767c\u9001\u548c\u63a5\u6536\u529f\u80fd\u5747\u904b\u4f5c\u6b63\u5e38\u3002<\/li>\n\n\n\n<li><strong>ID: 0x100<\/strong> : \u6d88\u606f\u7684\u6a19\u8b58\u7b26\uff08\u6b64\u8655\u70ba\u6a19\u6e96 ID 0x100\uff09\u3002CAN \u7cfb\u7d71\u4e2d\u901a\u5e38\u4f7f\u7528\u6b64\u6a19\u8b58\u7b26\u4f86\u5340\u5206\u4e0d\u540c\u985e\u578b\u7684\u6d88\u606f\uff0c\u4f8b\u5982\u8a3a\u65b7\u6d88\u606f\u6216\u6578\u64da\u66f4\u65b0\u3002<\/li>\n\n\n\n<li><strong>DLC: 8<\/strong> : <strong>Data Length Code<\/strong>\uff08\u6578\u64da\u9577\u5ea6\u4ee3\u78bc\uff09\uff0c\u8868\u793a\u6d88\u606f\u5305\u542b 8 \u500b\u6578\u64da\u5b57\u7bc0\u3002CAN \u6d88\u606f\u7684\u6578\u64da\u90e8\u5206\u6700\u5927\u53ef\u70ba 8 \u5b57\u7bc0\u3002<\/li>\n\n\n\n<li><strong>Data<\/strong>: \u6bcf\u500b\u6578\u64da\u5b57\u7bc0\u5c07\u9010\u884c\u5217\u5370\uff0c\u8868\u793a\u63a5\u6536\u5230\u7684\u6709\u6548\u8f09\u8377\u5167\u5bb9\u3002\u4f8b\u5982\uff1a<code>Data[0]: 0x00<\/code>,\u00a0<code>Data[1]: 0x01<\/code>, &#8230;,\u00a0<code>Data[7]: 0x07<\/code>\u3002<\/li>\n\n\n\n<li><strong><code>TWAI driver uninstalled<\/code> : <\/strong>\u9a45\u52d5\u7a0b\u5f0f\u5df2\u505c\u7528\u4e26\u88ab\u6b63\u78ba\u5378\u8f09\uff0c\u91cb\u653e\u8cc7\u6e90\u3002<\/li>\n<\/ul>\n\n\n\n<p><strong>\u932f\u8aa4\u60c5\u6cc1\u7684\u53ef\u80fd\u8f38\u51fa\uff1a<\/strong><\/p>\n\n\n\n<p>\u5982\u679c\u67d0\u500b\u6b65\u9a5f\u51fa\u73fe\u554f\u984c\uff0c\u4f8b\u5982\u9a45\u52d5\u7a0b\u5f0f\u5b89\u88dd\u5931\u6557\uff0c\u60a8\u53ef\u80fd\u6703\u770b\u5230\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">E (10) CAN_DRIVER: Failed to install TWAI driver<\/code><\/pre>\n\n\n\n<p><strong>\u6216\u5982\u679c\u9a45\u52d5\u7a0b\u5f0f\u7121\u6cd5\u555f\u52d5\uff1a<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"bash\" class=\"language-bash\">E (20) CAN_DRIVER: Failed to start TWAI driver<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"conclusion\">\u7d50\u8ad6<\/h2>\n\n\n\n<p><strong>CAN Bus <\/strong>\u662f\u4e00\u7a2e\u9ad8\u6548\u3001\u53ef\u9760\u7684\u4e32\u5217\u901a\u8a0a\u5354\u5b9a\uff0c\u6700\u521d\u7531\u535a\u4e16\u516c\u53f8\u70ba\u6c7d\u8eca\u5de5\u696d\u958b\u767c\uff0c\u73fe\u5df2\u5ee3\u6cdb\u61c9\u7528\u65bc\u5de5\u696d\u63a7\u5236\u3001\u91ab\u7642\u8a2d\u5099\u548c\u6a5f\u5668\u4eba\u7cfb\u7d71\u7b49\u9818\u57df\u3002\u5b83\u6191\u85c9\u5176\u6297\u5e72\u64fe\u3001\u5373\u6642\u901a\u8a0a\u548c\u4f4e\u6210\u672c\u7684\u7279\u9ede\uff0c\u6210\u70ba\u73fe\u4ee3\u96fb\u5b50\u7cfb\u7d71\u4e2d\u9023\u63a5\u4e0d\u540c\u8a2d\u5099\u7684\u95dc\u9375\u901a\u8a0a\u6280\u8853\u3002\u4f5c\u70ba\u4e00\u7a2e\u53bb\u4e2d\u5fc3\u5316\u7684\u901a\u8a0a\u7cfb\u7d71\uff0cCAN Bus \u5141\u8a31\u591a\u500b\u8a2d\u5099\u5728\u540c\u4e00\u7e3d\u7dda\u4e0a\u9032\u884c\u901a\u8a0a\uff0c\u5177\u6709\u9ad8\u901f\u5ea6(\u6700\u9ad8\u53ef\u90541Mbps)\u3001\u5f37\u5927\u7684\u932f\u8aa4\u6aa2\u6e2c\u548c\u81ea\u52d5\u91cd\u50b3\u6a5f\u5236\uff0c\u4e26\u80fd\u5728\u60e1\u52a3\u7684\u96fb\u78c1\u74b0\u5883\u4e2d\u4fdd\u6301\u7a69\u5b9a\uff0c\u56e0\u6b64\u5728\u9700\u8981\u9ad8\u53ef\u9760\u6027\u548c\u5373\u6642\u6027\u7684\u8907\u96dc\u7cfb\u7d71\u4e2d\u626e\u6f14\u8457\u4e0d\u53ef\u6216\u7f3a\u7684\u89d2\u8272\uff0c\u4ee3\u8868\u4e86\u73fe\u4ee3\u901a\u8a0a\u6280\u8853\u7684\u4e00\u500b\u91cd\u8981\u91cc\u7a0b\u7891\u3002<\/p>\n\n\n\n<hr class=\"wp-block-separator alignwide has-text-color has-palette-color-1-color has-alpha-channel-opacity has-palette-color-1-background-color has-background is-style-wide\"\/>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5728\u73fe\u4ee3\u5d4c\u5165\u5f0f\u7cfb\u7d71\u4e2d\uff0cCAN (Controller Area Network) Bus \u662f\u4e00\u7a2e\u975e\u5e38\u91cd\u8981\u7684\u901a\u8a0a\u5354 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":3025,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,53,83],"tags":[61,27,63,20,60,10,64,11,62],"class_list":["post-3011","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-module","category-esp32","category-featured","tag-bluetooth","tag-c","tag-firmware","tag-hardware","tag-iot","tag-mcu","tag-module","tag-tutorial","tag-wifi"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/saludpcb.com\/zh\/wp-json\/wp\/v2\/posts\/3011","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/saludpcb.com\/zh\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/saludpcb.com\/zh\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/saludpcb.com\/zh\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/saludpcb.com\/zh\/wp-json\/wp\/v2\/comments?post=3011"}],"version-history":[{"count":16,"href":"https:\/\/saludpcb.com\/zh\/wp-json\/wp\/v2\/posts\/3011\/revisions"}],"predecessor-version":[{"id":3036,"href":"https:\/\/saludpcb.com\/zh\/wp-json\/wp\/v2\/posts\/3011\/revisions\/3036"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/saludpcb.com\/zh\/wp-json\/wp\/v2\/media\/3025"}],"wp:attachment":[{"href":"https:\/\/saludpcb.com\/zh\/wp-json\/wp\/v2\/media?parent=3011"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/saludpcb.com\/zh\/wp-json\/wp\/v2\/categories?post=3011"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/saludpcb.com\/zh\/wp-json\/wp\/v2\/tags?post=3011"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}