From a827db4891ed8d89920e9474a2c33b4cfd3d8666 Mon Sep 17 00:00:00 2001 From: wangcoolc <1387172050@163.com> Date: Wed, 9 Dec 2020 15:33:02 +0800 Subject: [PATCH] Add canbus FD send example --- examples/sendFD/sendFD.ino | 58 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 examples/sendFD/sendFD.ino diff --git a/examples/sendFD/sendFD.ino b/examples/sendFD/sendFD.ino new file mode 100644 index 0000000..f592228 --- /dev/null +++ b/examples/sendFD/sendFD.ino @@ -0,0 +1,58 @@ +// demo: CAN-BUS Shield, send data +// loovee@seeed.cc + + +#include +#include "mcp2518fd_can.h" + +/*SAMD core*/ +#ifdef ARDUINO_SAMD_VARIANT_COMPLIANCE + #define SERIAL SerialUSB +#else + #define SERIAL Serial +#endif + + +#define CAN_2518FD +// the cs pin of the version after v1.1 is default to D9 +// v0.9b and v1.0 is default D10 +const int SPI_CS_PIN = BCM8; + +#ifdef CAN_2518FD +mcp2518fd CAN(SPI_CS_PIN); // Set CS pin +#endif + +void setup() { + SERIAL.begin(115200); + while(!Serial){}; + CAN.setMode(0); + while (0 != CAN.begin((byte)CAN_500K_1M)) { // init can bus : baudrate = 500k + SERIAL.println("CAN BUS Shield init fail"); + SERIAL.println(" Init CAN BUS Shield again"); + delay(100); + } + byte mode = CAN.getMode(); + SERIAL.printf("CAN BUS get mode = %d\n\r",mode); + SERIAL.println("CAN BUS Shield init ok!"); +} + +unsigned char stmp[64] = {0}; +void loop() { + // send data: id = 0x00, standrad frame, data len = 8, stmp: data buf + stmp[63] = stmp[63] + 1; + if (stmp[63] == 100) { + stmp[63] = 0; + stmp[63] = stmp[63] + 1; + + if (stmp[6] == 100) { + stmp[6] = 0; + stmp[5] = stmp[6] + 1; + } + } + + CAN.sendMsgBuf(0x00, 0, 15, stmp); + delay(100); // send data per 100ms + SERIAL.println("CAN BUS sendMsgBuf ok!"); +} + +// END FILE