From c26bfa704b6836090f1ffdcb473ac3575f761843 Mon Sep 17 00:00:00 2001 From: wangcoolc <1387172050@163.com> Date: Wed, 9 Dec 2020 15:53:14 +0800 Subject: [PATCH] Modified mcp2518fd setmode and set fd format --- mcp2518fd_can.cpp | 9 ++++++--- mcp2518fd_can.h | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/mcp2518fd_can.cpp b/mcp2518fd_can.cpp index 4a9823e..2fe6ac5 100644 --- a/mcp2518fd_can.cpp +++ b/mcp2518fd_can.cpp @@ -2423,7 +2423,6 @@ void mcp2518fd::mcp2518fd_TransmitMessageQueue(void) // Load message and transmit uint8_t n = DRV_CANFDSPI_DlcToDataBytes((CAN_DLC)txObj.bF.ctrl.DLC); - mcp2518fd_TransmitChannelLoad(APP_TX_FIFO, &txObj, txd, n, true); } @@ -2460,6 +2459,10 @@ byte mcp2518fd::mcp2518fd_sendMsg(const byte *buf, byte len, unsigned long id, b txObj.bF.ctrl.IDE = 0; txObj.bF.ctrl.FDF = 0; } + if (len > 8) + { + txObj.bF.ctrl.FDF = 1; + } txObj.bF.ctrl.BRS = true; //Prepare data @@ -2554,10 +2557,10 @@ uint8_t mcp2518fd::mcp2518fd_init(byte speedset,const byte clock) // Select Normal Mode // mcp2518fd_OperationModeSelect(CAN_CLASSIC_MODE); - setMode(CAN_CLASSIC_MODE); + setMode(mcpMode); // CAN_OPERATION_MODE abc; - // abc = DRV_CANFDSPI_OperationModeGet(0); + // abc = mcp2518fd_OperationModeGet(); // Serial.printf("DRV_CANFDSPI_OperationModeGet = %d\n\r",abc); return 0; diff --git a/mcp2518fd_can.h b/mcp2518fd_can.h index e24f056..3a7a596 100644 --- a/mcp2518fd_can.h +++ b/mcp2518fd_can.h @@ -217,7 +217,7 @@ private: unsigned long can_id; // can id byte rtr; // rtr byte nReservedTx; // Count of tx buffers for reserved send - CAN_OPERATION_MODE mcpMode; // Current controller mode + CAN_OPERATION_MODE mcpMode = CAN_CLASSIC_MODE; // Current controller mode }; #endif \ No newline at end of file