#include "driver/gpio.h" #include "driver/can.h" void setup() { can_message_t message; Serial.begin(115200); message.identifier = 0x10; can_general_config_t g_config = { // สร้างต้วแปร g_config ใช้กำหนดค่าเกี่ยวกับบัส CAN .mode = CAN_MODE_NORMAL, .tx_io = GPIO_NUM_26, // กำหนดขา TX ต่อกับ 26 .rx_io = GPIO_NUM_27, // กำหนดขา TX ต่อกับ 27 .clkout_io = ((gpio_num_t) - 1), .bus_off_io = ((gpio_num_t) - 1), .tx_queue_len = 5, .rx_queue_len = 5, .alerts_enabled = CAN_ALERT_NONE, .clkout_divider = 0 }; can_timing_config_t t_config = CAN_TIMING_CONFIG_500KBITS(); can_filter_config_t f_config = CAN_FILTER_CONFIG_ACCEPT_ALL(); if (can_driver_install(&g_config, &t_config, &f_config) != ESP_OK) { Serial.println("Failed to install driver"); return; } if (can_start() != ESP_OK) { Serial.println("Failed to start driver"); return; } } void loop() { // สร้างตัวแปร message เพื่อใช้รับข้อมูลจาก CAN bus can_message_t message; // ทดลองรับข้อมูลจาก CAN bus if (can_receive(&message, pdMS_TO_TICKS(1000)) != ESP_OK) { return; } uint16_t adc = (message.data[0] << 8) | message.data[1]; // แสดงผลข้อมูลที่รับได้ Serial.println(adc); }