紧急通知:禁止一切关于政治&VPN翻墙等话题,发现相关帖子会立马删除封号
小鱼 ROS 2 新书上线!点击链接查看, 新书配套视频点击链接查看。
提问前必看的发帖注意事项—— 提问前必看!不符合要求的问题拒绝回答!!
社区使用指南—如何添加标签修改密码
小鱼 ROS 2 新书上线!点击链接查看, 新书配套视频点击链接查看。
提问前必看的发帖注意事项—— 提问前必看!不符合要求的问题拒绝回答!!
社区使用指南—如何添加标签修改密码
MicroROS学习板CAN测试代码分享
-
MicroROS学习板CAN测试代码分享
- 开发板:microros学习板
- 开源库:https://github.com/miwagner/ESP32-Arduino-CAN.git
- 收发芯片:VP230
收发代码
#include <Arduino.h> #include <ESP32CAN.h> #include <CAN_config.h> CAN_device_t CAN_cfg; // CAN Config unsigned long previousMillis = 0; // will store last time a CAN Message was send const int interval = 1000; // interval at which send CAN Messages (milliseconds) const int rx_queue_size = 10; // Receive Queue size void setup() { Serial.begin(115200); Serial.println("Basic Demo - ESP32-Arduino-CAN"); CAN_cfg.speed = CAN_SPEED_1000KBPS; CAN_cfg.tx_pin_id = GPIO_NUM_5; CAN_cfg.rx_pin_id = GPIO_NUM_4; CAN_cfg.rx_queue = xQueueCreate(rx_queue_size, sizeof(CAN_frame_t)); // Init CAN Module ESP32Can.CANInit(); } void loop() { CAN_frame_t rx_frame; unsigned long currentMillis = millis(); // Receive next CAN frame from queue if (xQueueReceive(CAN_cfg.rx_queue, &rx_frame, 3 * portTICK_PERIOD_MS) == pdTRUE) { if (rx_frame.FIR.B.FF == CAN_frame_std) { printf("New standard frame"); } else { printf("New extended frame"); } if (rx_frame.FIR.B.RTR == CAN_RTR) { printf(" RTR from 0x%08X, DLC %d\r\n", rx_frame.MsgID, rx_frame.FIR.B.DLC); } else { printf(" from 0x%08X, DLC %d, Data ", rx_frame.MsgID, rx_frame.FIR.B.DLC); for (int i = 0; i < rx_frame.FIR.B.DLC; i++) { printf("0x%02X ", rx_frame.data.u8[i]); } printf("\n"); } } // Send CAN Message if (currentMillis - previousMillis >= interval) { previousMillis = currentMillis; CAN_frame_t tx_frame; tx_frame.FIR.B.FF = CAN_frame_std; tx_frame.MsgID = 0x001; tx_frame.FIR.B.DLC = 8; tx_frame.data.u8[0] = 0x00; tx_frame.data.u8[1] = 0x01; tx_frame.data.u8[2] = 0x02; tx_frame.data.u8[3] = 0x03; tx_frame.data.u8[4] = 0x04; tx_frame.data.u8[5] = 0x05; tx_frame.data.u8[6] = 0x06; tx_frame.data.u8[7] = 0x03; ESP32Can.CANWriteFrame(&tx_frame); } }
-