canfd-motor-command.ino

BeagleConnect QuadESC: Controlador BLDC de 4 canales · Archivo : canfd-motor-command.ino · Lenguaje : C · Uso : Envoyer une commande de couple moteur via bus CAN FD.

Inicialización del bus CAN FD y transmisión periódica de tramas de control de motor.

Requiere un transceptor CAN FD conectado. Configura los anchos de banda de arbitraje y datos. Los pines CAN_H/L deben estar correctamente cableados. Verifica la recepción en una herramienta CAN externa.

canfd-motor-command.ino

#include <zephyr/kernel.h>
#include <zephyr/drivers/can.h>

#define CAN_NODE DT_ALIAS(can0)
static const struct device *can_dev = DEVICE_DT_GET(CAN_NODE);
struct can_frame can_msg = { .can_id = 0x100, .len = 8, .data = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} };

void main(void) {
    can_set_bitrate(can_dev, 500000, 2000000); // 500k arb, 2M data
    if (can_enable(can_dev, CAN_MODE_NORMAL)) return;
    while (1) {
        can_msg.data[0] = 0x01; // Motor ID
        can_msg.data[1] = 0x10; // Torque value
        can_send(can_dev, &can_msg, K_MSEC(100), NULL, NULL);
        k_msleep(10);
    }
}

← Volver a la ficha