canfd-motor-command.ino
Initialisation du bus CAN FD et envoi périodique de trames de contrôle moteur.
Requiert un transceiver CAN FD connecté. Configure les débits d'arbitrage et de données. Les broches CAN_H/L doivent être correctement câblées. Vérifie la réception sur un outil CAN externe.
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);
}
}