summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/fsl_dspi.c9
-rw-r--r--drivers/fsl_flexcan.c13
-rw-r--r--drivers/fsl_flexcan.h2
3 files changed, 23 insertions, 1 deletions
diff --git a/drivers/fsl_dspi.c b/drivers/fsl_dspi.c
index e2b90ba..dcd93aa 100644
--- a/drivers/fsl_dspi.c
+++ b/drivers/fsl_dspi.c
@@ -29,6 +29,7 @@
*/
#include "fsl_dspi.h"
+#include "com_task.h"
/*******************************************************************************
* Definitions
@@ -1465,10 +1466,18 @@ void DSPI_SlaveTransferHandleIRQ(SPI_Type *base, dspi_slave_handle_t *handle)
{
if (handle->rxData)
{
+ if ((handle->totalByteCount - handle->remainingReceiveByteCount) == 1){
+ if ( *(handle->rxData - 1) == APALIS_TK1_K20_BULK_WRITE_INST) {
+ handle->remainingReceiveByteCount += dataReceived;
+ handle->totalByteCount += dataReceived;
+ handle->remainingSendByteCount += dataReceived;
+ }
+ }
/* Receive buffer is not null, store data into it */
*handle->rxData = dataReceived;
++handle->rxData;
}
+
/* Descrease remaining receive byte count */
--handle->remainingReceiveByteCount;
diff --git a/drivers/fsl_flexcan.c b/drivers/fsl_flexcan.c
index f58f3f5..8fd3399 100644
--- a/drivers/fsl_flexcan.c
+++ b/drivers/fsl_flexcan.c
@@ -392,7 +392,7 @@ static void FLEXCAN_Reset(CAN_Type *base)
}
}
-static void FLEXCAN_SetBaudRate(CAN_Type *base, uint32_t sourceClock_Hz, uint32_t baudRate_Bps)
+void FLEXCAN_SetBaudRate(CAN_Type *base, uint32_t sourceClock_Hz, uint32_t baudRate_Bps)
{
flexcan_timing_config_t timingConfig;
uint32_t priDiv = baudRate_Bps * FLEXCAN_TIME_QUANTA_NUM;
@@ -555,6 +555,17 @@ void FLEXCAN_SetTimingConfig(CAN_Type *base, const flexcan_timing_config_t *conf
FLEXCAN_ExitFreezeMode(base);
}
+void FLEXCAN_SetBitRate(CAN_Type *base, uint32_t sourceClock_Hz, uint32_t baudRate_Bps)
+{
+ /* Enter Freeze Mode. */
+ FLEXCAN_EnterFreezeMode(base);
+
+ FLEXCAN_SetBaudRate(base, sourceClock_Hz, baudRate_Bps);
+
+ /* Exit Freeze Mode. */
+ FLEXCAN_ExitFreezeMode(base);
+}
+
void FLEXCAN_SetRxMbGlobalMask(CAN_Type *base, uint32_t mask)
{
/* Enter Freeze Mode. */
diff --git a/drivers/fsl_flexcan.h b/drivers/fsl_flexcan.h
index 118badf..e6baa93 100644
--- a/drivers/fsl_flexcan.h
+++ b/drivers/fsl_flexcan.h
@@ -502,6 +502,8 @@ void FLEXCAN_GetDefaultConfig(flexcan_config_t *config);
*/
void FLEXCAN_SetTimingConfig(CAN_Type *base, const flexcan_timing_config_t *config);
+void FLEXCAN_SetBitRate(CAN_Type *base, uint32_t sourceClock_Hz, uint32_t baudRate_Bps);
+
/*!
* @brief Sets the FlexCAN receive message buffer global mask.
*