mirror of
https://github.com/Dev-KATECH/ADM.git
synced 2026-05-17 01:43:59 +09:00
461 lines
21 KiB
C
461 lines
21 KiB
C
/*==================================================================================================
|
|
* Project : RTD AUTOSAR 4.4
|
|
* Platform : CORTEXM
|
|
* Peripheral : LPUART
|
|
* Dependencies : none
|
|
*
|
|
* Autosar Version : 4.4.0
|
|
* Autosar Revision : ASR_REL_4_4_REV_0000
|
|
* Autosar Conf.Variant :
|
|
* SW Version : 0.9.0
|
|
* Build Version : S32K3_RTD_0_9_0__ASR_REL_4_4_REV_0000_20210326
|
|
*
|
|
* (c) Copyright 2020 - 2021 NXP Semiconductors
|
|
* All Rights Reserved.
|
|
*
|
|
* NXP Confidential. This software is owned or controlled by NXP and may only be
|
|
* used strictly in accordance with the applicable license terms. By expressly
|
|
* accepting such terms or by downloading, installing, activating and/or otherwise
|
|
* using the software, you are agreeing that you have read, and that you agree to
|
|
* comply with and are bound by, such license terms. If you do not agree to be
|
|
* bound by the applicable license terms, then you may not retain, install,
|
|
* activate or otherwise use the software.
|
|
==================================================================================================*/
|
|
|
|
#ifndef LPUART_LIN_IP_H
|
|
#define LPUART_LIN_IP_H
|
|
|
|
/**
|
|
* @file
|
|
* @defgroup lpuart_lin_ip Lpuart Lin IPL
|
|
* @addtogroup lpuart_lin_ip Lpuart Lin IPL
|
|
* @{
|
|
*/
|
|
|
|
#ifdef __cplusplus
|
|
extern "C"{
|
|
#endif
|
|
|
|
/*==================================================================================================
|
|
* INCLUDE FILES
|
|
* 1) system and project includes
|
|
* 2) needed interfaces from external units
|
|
* 3) internal and external interfaces from this unit
|
|
==================================================================================================*/
|
|
|
|
#include "Lpuart_Lin_Ip_Hw_Access.h"
|
|
#include "Lpuart_Lin_Ip_Cfg.h"
|
|
#include "Lin_Ip_Common.h"
|
|
#include "Lpuart_Lin_Ip_Types.h"
|
|
|
|
/*==================================================================================================
|
|
* SOURCE FILE VERSION INFORMATION
|
|
==================================================================================================*/
|
|
|
|
#define LPUART_LIN_IP_VENDOR_ID 43
|
|
#define LPUART_LIN_IP_AR_RELEASE_MAJOR_VERSION 4
|
|
#define LPUART_LIN_IP_AR_RELEASE_MINOR_VERSION 4
|
|
#define LPUART_LIN_IP_AR_RELEASE_REVISION_VERSION 0
|
|
#define LPUART_LIN_IP_SW_MAJOR_VERSION 0
|
|
#define LPUART_LIN_IP_SW_MINOR_VERSION 9
|
|
#define LPUART_LIN_IP_SW_PATCH_VERSION 0
|
|
|
|
/*==================================================================================================
|
|
* FILE VERSION CHECKS
|
|
==================================================================================================*/
|
|
/* Checks against Lpuart_Lin_Ip_Hw_Access.h */
|
|
#if (LPUART_LIN_IP_VENDOR_ID != LPUART_LIN_IP_HW_ACCESS_VENDOR_ID)
|
|
#error "Lpuart_Lin_Ip.h and Lpuart_Lin_Ip_Hw_Access.h have different vendor ids"
|
|
#endif
|
|
/* Check if current file and Lpuart_Lin_Ip_Hw_Access header file are of the same Autosar version */
|
|
#if ((LPUART_LIN_IP_AR_RELEASE_MAJOR_VERSION != LPUART_LIN_IP_HW_ACCESS_AR_RELEASE_MAJOR_VERSION) || \
|
|
(LPUART_LIN_IP_AR_RELEASE_MINOR_VERSION != LPUART_LIN_IP_HW_ACCESS_AR_RELEASE_MINOR_VERSION) || \
|
|
(LPUART_LIN_IP_AR_RELEASE_REVISION_VERSION != LPUART_LIN_IP_HW_ACCESS_AR_RELEASE_REVISION_VERSION))
|
|
#error "AUTOSAR Version Numbers of Lpuart_Lin_Ip.h and Lpuart_Lin_Ip_Hw_Access.h are different"
|
|
#endif
|
|
/* Check if current file and Lpuart_Lin_Ip_Hw_Access header file are of the same Software version */
|
|
#if ((LPUART_LIN_IP_SW_MAJOR_VERSION != LPUART_LIN_IP_HW_ACCESS_SW_MAJOR_VERSION) || \
|
|
(LPUART_LIN_IP_SW_MINOR_VERSION != LPUART_LIN_IP_HW_ACCESS_SW_MINOR_VERSION) || \
|
|
(LPUART_LIN_IP_SW_PATCH_VERSION != LPUART_LIN_IP_HW_ACCESS_SW_PATCH_VERSION) \
|
|
)
|
|
#error "Software Version Numbers of Lpuart_Lin_Ip.h and Lpuart_Lin_Ip_Hw_Access.h are different"
|
|
#endif
|
|
|
|
/* Checks against Lpuart_Lin_Ip_Cfg.h */
|
|
#if (LPUART_LIN_IP_VENDOR_ID != LPUART_LIN_IP_CFG_VENDOR_ID)
|
|
#error "Lpuart_Lin_Ip.h and Lpuart_Lin_Ip_Cfg.h have different vendor ids"
|
|
#endif
|
|
/* Check if current file and Lpuart_Lin_Ip_Cfg header file are of the same Autosar version */
|
|
#if ((LPUART_LIN_IP_AR_RELEASE_MAJOR_VERSION != LPUART_LIN_IP_CFG_AR_RELEASE_MAJOR_VERSION) || \
|
|
(LPUART_LIN_IP_AR_RELEASE_MINOR_VERSION != LPUART_LIN_IP_CFG_AR_RELEASE_MINOR_VERSION) || \
|
|
(LPUART_LIN_IP_AR_RELEASE_REVISION_VERSION != LPUART_LIN_IP_CFG_AR_RELEASE_REVISION_VERSION))
|
|
#error "AUTOSAR Version Numbers of Lpuart_Lin_Ip.h and Lpuart_Lin_Ip_Cfg.h are different"
|
|
#endif
|
|
/* Check if current file and Lpuart_Lin_Ip_Cfg header file are of the same Software version */
|
|
#if ((LPUART_LIN_IP_SW_MAJOR_VERSION != LPUART_LIN_IP_CFG_SW_MAJOR_VERSION) || \
|
|
(LPUART_LIN_IP_SW_MINOR_VERSION != LPUART_LIN_IP_CFG_SW_MINOR_VERSION) || \
|
|
(LPUART_LIN_IP_SW_PATCH_VERSION != LPUART_LIN_IP_CFG_SW_PATCH_VERSION) \
|
|
)
|
|
#error "Software Version Numbers of Lpuart_Lin_Ip.h and Lpuart_Lin_Ip_Cfg.h are different"
|
|
#endif
|
|
|
|
/* Checks against Lin_Ip_Common.h */
|
|
#if (LPUART_LIN_IP_VENDOR_ID != LIN_IP_COMMON_VENDOR_ID)
|
|
#error "Lpuart_Lin_Ip.h and Lin_Ip_Common.h have different vendor ids"
|
|
#endif
|
|
/* Check if current file and Lin_Ip_Common header file are of the same Autosar version */
|
|
#if ((LPUART_LIN_IP_AR_RELEASE_MAJOR_VERSION != LIN_IP_COMMON_AR_RELEASE_MAJOR_VERSION) || \
|
|
(LPUART_LIN_IP_AR_RELEASE_MINOR_VERSION != LIN_IP_COMMON_AR_RELEASE_MINOR_VERSION) || \
|
|
(LPUART_LIN_IP_AR_RELEASE_REVISION_VERSION != LIN_IP_COMMON_AR_RELEASE_REVISION_VERSION))
|
|
#error "AUTOSAR Version Numbers of Lpuart_Lin_Ip.h and Lin_Ip_Common.h are different"
|
|
#endif
|
|
/* Check if current file and Lin_Ip_Common header file are of the same Software version */
|
|
#if ((LPUART_LIN_IP_SW_MAJOR_VERSION != LIN_IP_COMMON_SW_MAJOR_VERSION) || \
|
|
(LPUART_LIN_IP_SW_MINOR_VERSION != LIN_IP_COMMON_SW_MINOR_VERSION) || \
|
|
(LPUART_LIN_IP_SW_PATCH_VERSION != LIN_IP_COMMON_SW_PATCH_VERSION) \
|
|
)
|
|
#error "Software Version Numbers of Lpuart_Lin_Ip.h and Lin_Ip_Common.h are different"
|
|
#endif
|
|
|
|
/* Checks against Lpuart_Lin_Ip_Types.h */
|
|
#if (LPUART_LIN_IP_VENDOR_ID != LPUART_LIN_IP_TYPES_VENDOR_ID)
|
|
#error "Lpuart_Lin_Ip.h and Lpuart_Lin_Ip_Types.h have different vendor ids"
|
|
#endif
|
|
/* Check if current file and Lpuart_Lin_Ip_Types header file are of the same Autosar version */
|
|
#if ((LPUART_LIN_IP_AR_RELEASE_MAJOR_VERSION != LPUART_LIN_IP_TYPES_AR_RELEASE_MAJOR_VERSION) || \
|
|
(LPUART_LIN_IP_AR_RELEASE_MINOR_VERSION != LPUART_LIN_IP_TYPES_AR_RELEASE_MINOR_VERSION) || \
|
|
(LPUART_LIN_IP_AR_RELEASE_REVISION_VERSION != LPUART_LIN_IP_TYPES_AR_RELEASE_REVISION_VERSION))
|
|
#error "AUTOSAR Version Numbers of Lpuart_Lin_Ip.h and Lpuart_Lin_Ip_Types.h are different"
|
|
#endif
|
|
/* Check if current file and Lpuart_Lin_Ip_Types header file are of the same Software version */
|
|
#if ((LPUART_LIN_IP_SW_MAJOR_VERSION != LPUART_LIN_IP_TYPES_SW_MAJOR_VERSION) || \
|
|
(LPUART_LIN_IP_SW_MINOR_VERSION != LPUART_LIN_IP_TYPES_SW_MINOR_VERSION) || \
|
|
(LPUART_LIN_IP_SW_PATCH_VERSION != LPUART_LIN_IP_TYPES_SW_PATCH_VERSION) \
|
|
)
|
|
#error "Software Version Numbers of Lpuart_Lin_Ip.h and Lpuart_Lin_Ip_Types.h are different"
|
|
#endif
|
|
|
|
/*==================================================================================================
|
|
* CONSTANTS
|
|
==================================================================================================*/
|
|
#define LIN_START_SEC_CONFIG_DATA_UNSPECIFIED
|
|
#include "Lin_MemMap.h"
|
|
|
|
/* Calling the external Configuration symbols defined by Lpuart_Lin_Ip_Cfg.h */
|
|
LPUART_LIN_IP_CONFIG_EXT
|
|
|
|
#define LIN_STOP_SEC_CONFIG_DATA_UNSPECIFIED
|
|
#include "Lin_MemMap.h"
|
|
|
|
/*==================================================================================================
|
|
* DEFINES AND MACROS
|
|
==================================================================================================*/
|
|
|
|
/*==================================================================================================
|
|
* ENUMS
|
|
==================================================================================================*/
|
|
|
|
/*==================================================================================================
|
|
* STRUCTURES AND OTHER TYPEDEFS
|
|
==================================================================================================*/
|
|
|
|
/*==================================================================================================
|
|
* GLOBAL VARIABLE DECLARATIONS
|
|
==================================================================================================*/
|
|
|
|
/*==================================================================================================
|
|
* FUNCTION PROTOTYPES
|
|
==================================================================================================*/
|
|
#define LIN_START_SEC_CODE
|
|
#include "Lin_MemMap.h"
|
|
|
|
/**
|
|
* @brief Initializes an LIN_LPUART instance for LIN Network.
|
|
*
|
|
* @details The caller provides memory for the driver state structures during initialization.
|
|
* The user must select the LIN_LPUART clock source in the application to initialize the LIN_LPUART.
|
|
* This function initializes a LPUART instance for operation.
|
|
* This function will initialize the run-time state structure to keep track of
|
|
* the on-going transfers, initialize the module to user defined settings and
|
|
* default settings, set break field length to be 13 bit times minimum, enable
|
|
* the break detect interrupt, Rx complete interrupt, frame error detect interrupt,
|
|
* and enable the LPUART module transmitter and receiver
|
|
*
|
|
* @param u32Instance LIN_LPUART instance number
|
|
* @param linUserConfig user configuration structure of type #lin_user_config_t
|
|
*
|
|
* @return void
|
|
*
|
|
*
|
|
*/
|
|
void Lpuart_Lin_Ip_Init(const uint32 u32Instance, const Lpuart_Lin_Ip_UserConfigType * pUserConfig);
|
|
|
|
/**
|
|
* @brief Shuts down the LIN_LPUART by disabling interrupts and transmitter/receiver.
|
|
*
|
|
* @param u32Instance LIN_LPUART instance number
|
|
*
|
|
* @return void
|
|
*
|
|
*
|
|
*/
|
|
void Lpuart_Lin_Ip_Deinit(const uint32 u32Instance);
|
|
|
|
/**
|
|
* @brief Sends frame data out through the LIN_LPUART module using non-blocking method.
|
|
*
|
|
* @details This enables an a-sync method for transmitting data.
|
|
* Non-blocking means that the function returns immediately.
|
|
* The application has to get the transmit status to know when the transmit is complete.
|
|
* This function will calculate the checksum byte and send it with the frame data.
|
|
* If txSize is equal to 0 or greater than 8 or node's current state is in SLEEP mode
|
|
* then the function will return LPUART_LIN_IP_STATUS_ERROR. If isBusBusy is currently true then the
|
|
* function will return LPUART_LIN_IP_STATUS_BUSY.
|
|
*
|
|
* @param[in] u32Instance LIN_LPUART instance number
|
|
* @param[in] pTxBuff source buffer containing 8-bit data chars to send
|
|
* @param[in] u8TxSize the number of bytes to send
|
|
*
|
|
* @return operation status:
|
|
* @retval LPUART_LIN_IP_STATUS_SUCCESS : The transmission is successful.
|
|
* @retval LPUART_LIN_IP_STATUS_BUSY : Operation failed due to isBusBusy is currently true.
|
|
* @retval LPUART_LIN_IP_STATUS_ERROR : Operation failed due to txSize is equal to 0 or greater than 8
|
|
* or node's current state is in SLEEP mode
|
|
*
|
|
*
|
|
*/
|
|
Lpuart_Lin_Ip_StatusType Lpuart_Lin_Ip_AsyncSendFrameData(const uint32 u32Instance, const uint8 * pTxBuff, const uint8 u8TxSize);
|
|
|
|
/**
|
|
* @brief Sends frame data out through the LIN_LPUART module using blocking method.
|
|
*
|
|
* @details This enables a sync method for transmitting data. The frame data will be
|
|
* transmitted to the last byte and at the end is checksum byte. If any error occurred,
|
|
* the transmission would be suspended and returned LPUART_LIN_IP_STATUS_ERROR.
|
|
* Blocking means that the function does not return until the transmission is completed.
|
|
* The application can get status of the transmission by return value.
|
|
*
|
|
*
|
|
* @param[in] u32Instance LIN_LPUART instance number
|
|
* @param[out] pTxBuff source buffer containing 8-bit data chars to send
|
|
* @param[in] u8TxSize the number of bytes to send
|
|
*
|
|
* @return operation status:
|
|
* @retval LPUART_LIN_IP_STATUS_SUCCESS : The transmission is successful.
|
|
* @retval LPUART_LIN_IP_STATUS_TIMEOUT : The transmission has timeout.
|
|
* @retval LPUART_LIN_IP_STATUS_ERROR : Operation failed due to txSize is equal to 0 or greater than 8
|
|
* or node's current state is in SLEEP mode or an error occurred in transmission
|
|
*
|
|
*
|
|
*/
|
|
Lpuart_Lin_Ip_StatusType Lpuart_Lin_Ip_SyncSendFrameData(const uint32 u32Instance, const uint8 * pTxBuff, const uint8 u8TxSize);
|
|
|
|
/**
|
|
* @brief Get status of an on-going non-blocking transmission
|
|
*
|
|
* @details While sending frame data using non-blocking method, users can
|
|
* use this function to get status of that transmission.
|
|
* This function return LPUART_LIN_IP_STATUS_BUSY while sending, or LPUART_LIN_IP_STATUS_TIMEOUT
|
|
* if timeout has occurred, or return LPUART_LIN_IP_STATUS_SUCCESS when the transmission is complete.
|
|
* The pBytesRemaining shows number of bytes that still needed to transmit including the CheckSum byte.
|
|
*
|
|
* @param u32Instance LIN_LPUART instance number
|
|
* @param pBytesRemaining Number of bytes still needed to transmit
|
|
* @return operation status:
|
|
* @retval LPUART_LIN_IP_STATUS_SUCCESS : The transmission is successful.
|
|
* @retval LPUART_LIN_IP_STATUS_BUSY : The transmission is sending
|
|
* @retval LPUART_LIN_IP_STATUS_TIMEOUT : Operation failed due to timeout has occurred.
|
|
*
|
|
*
|
|
*/
|
|
|
|
Lpuart_Lin_Ip_StatusType Lpuart_Lin_Ip_GetTransmitStatus(const uint32 u32Instance, uint8 * const pBytesRemaining);
|
|
|
|
/**
|
|
* @brief Receives frame data through the LIN_LPUART module using non-blocking method.
|
|
*
|
|
* @details This function returns immediately after initiating the receive function.
|
|
* The application has to get the receive status to see when the receive is complete.
|
|
* The interrupt handler Lpuart_Lin_Ip_IRQHandler will check the checksum byte.
|
|
* If the checksum is correct, it will receive the frame data.
|
|
* This function also check if rxSize is in range from 1 to 8.
|
|
* If not, it will return LPUART_LIN_IP_STATUS_ERROR. This function also returns LPUART_LIN_IP_STATUS_ERROR if
|
|
* node's current state is in SLEEP mode. This function checks if the isBusBusy is
|
|
* false, if not it will return LPUART_LIN_IP_STATUS_BUSY.
|
|
*
|
|
* @param[in] u32Instance LIN_LPUART u32Instance number
|
|
* @param[out] pRxBuff buffer containing 8-bit received data
|
|
* @param[in] u8RxSize the number of bytes to receive
|
|
* @return operation status:
|
|
* @retval LPUART_LIN_IP_STATUS_SUCCESS : The receives frame data is successful.
|
|
* @retval LPUART_LIN_IP_STATUS_BUSY : Bus busy flag is true.
|
|
* @retval LPUART_LIN_IP_STATUS_ERROR : Operation failed due is equal to 0 or greater than 8 or
|
|
* node's current state is in SLEEP mode
|
|
*
|
|
*
|
|
*/
|
|
Lpuart_Lin_Ip_StatusType Lpuart_Lin_Ip_AsyncReceiveFrameData(const uint32 u32Instance, uint8 * pRxBuff, const uint8 u8RxSize);
|
|
|
|
/**
|
|
* @brief Sends frame data out through the LIN_LPUART module using blocking method.
|
|
*
|
|
* @details This enables a sync method for receiving data. The frame data will be
|
|
* received to its the last byte and at the end is checksum byte. If any error occurred,
|
|
* the reception would be suspended and returned LPUART_LIN_IP_STATUS_ERROR.
|
|
* Blocking means that the function does not return until the reception is completed.
|
|
* The application can get status of the reception by return value.
|
|
*
|
|
*
|
|
* @param[in] u32Instance LIN_LPUART instance number
|
|
* @param[out] pRxBuff source buffer containing 8-bit data chars to receive
|
|
* @param[in] u8RxSize the number of bytes to receive
|
|
*
|
|
* @return operation status:
|
|
* @retval LPUART_LIN_IP_STATUS_SUCCESS : The receives frame data is successful.
|
|
* @retval LPUART_LIN_IP_STATUS_TIMEOUT : The transmission has timeout.
|
|
* @retval LPUART_LIN_IP_STATUS_BUSY : Bus busy flag is true.
|
|
* @retval LPUART_LIN_IP_STATUS_ERROR : Operation failed due to rxSize is equal to 0 or greater than 8
|
|
* or node's current state is in SLEEP mode or an error occurred in transmission
|
|
*
|
|
*
|
|
*/
|
|
Lpuart_Lin_Ip_StatusType Lpuart_Lin_Ip_SyncReceiveFrameData(const uint32 u32Instance, uint8 * pRxBuff, const uint8 u8RxSize);
|
|
|
|
/**
|
|
* @brief Aborts an on-going non-blocking transmission/reception.
|
|
*
|
|
* @details While performing a non-blocking transferring data, users can call this function
|
|
* to terminate immediately the transferring.
|
|
*
|
|
* @param u32Instance LIN_LPUART instance number
|
|
* @return void
|
|
*
|
|
*
|
|
*/
|
|
void Lpuart_Lin_Ip_AbortTransferData(const uint32 u32Instance);
|
|
|
|
/**
|
|
* @brief Get status of an on-going non-blocking reception
|
|
* @details While receiving frame data using non-blocking method, users can
|
|
* use this function to get status of that receiving.
|
|
* This function return the current event ID, LPUART_LIN_IP_STATUS_BUSY while receiving
|
|
* and return LPUART_LIN_IP_STATUS_SUCCESS, or timeout (LPUART_LIN_IP_STATUS_TIMEOUT) when the reception is complete.
|
|
* The pBytesRemaining shows number of bytes that still needed to receive including the CheckSum byte.
|
|
*
|
|
* @param u32Instance LIN_LPUART instance number
|
|
* @param pBytesRemaining Number of bytes still needed to receive
|
|
*
|
|
* @return operation status:
|
|
* @retval LPUART_LIN_IP_STATUS_SUCCESS : The reception is complete.
|
|
* @retval LPUART_LIN_IP_STATUS_TIMEOUT : The reception isn't complete.
|
|
* @retval LPUART_LIN_IP_STATUS_BUSY : The reception is on going
|
|
*
|
|
*
|
|
*/
|
|
Lpuart_Lin_Ip_StatusType Lpuart_Lin_Ip_GetReceiveStatus(const uint32 u32Instance, uint8 * const pBytesRemaining);
|
|
|
|
/**
|
|
* @brief This function puts current node to sleep mode
|
|
* @details This function changes current node state to LIN_NODE_STATE_SLEEP_MODE
|
|
*
|
|
* @param u32Instance LIN_LPUART instance number
|
|
* @return function always return LPUART_LIN_IP_STATUS_SUCCESS
|
|
*
|
|
*
|
|
*/
|
|
void Lpuart_Lin_Ip_GoToSleepMode(const uint32 u32Instance);
|
|
|
|
/**
|
|
* @brief Puts current LIN node to Idle state
|
|
* This function changes current node state to LIN_NODE_STATE_IDLE
|
|
*
|
|
* @param u32Instance LIN_LPUART instance number
|
|
* @return function always return LPUART_LIN_IP_STATUS_SUCCESS
|
|
*
|
|
*
|
|
*/
|
|
void Lpuart_Lin_Ip_GotoIdleState(const uint32 u32Instance);
|
|
|
|
/**
|
|
* @brief Sends a wakeup signal through the LIN_LPUART interface
|
|
*
|
|
* @param u32Instance LIN_LPUART instance number
|
|
* @return operation status:
|
|
* @retval LPUART_LIN_IP_STATUS_SUCCESS : Bus busy flag is false.
|
|
* @retval LPUART_LIN_IP_STATUS_BUSY : Bus busy flag is true.
|
|
*
|
|
*
|
|
*/
|
|
Lpuart_Lin_Ip_StatusType Lpuart_Lin_Ip_SendWakeupSignal(const uint32 u32Instance);
|
|
|
|
/**
|
|
* @brief Get the current LIN node state
|
|
*
|
|
* @param u32Instance LIN_LPUART instance number
|
|
* @return current LIN node state
|
|
*
|
|
*
|
|
*/
|
|
Lpuart_Lin_Ip_NodeStateType Lpuart_Lin_Ip_GetCurrentNodeState(const uint32 u32Instance);
|
|
|
|
/**
|
|
* @brief Callback function for Timer Interrupt Handler
|
|
* Users shall initialize a timer (for example FTM) in Output compare mode
|
|
* with period of 500 micro seconds. In timer IRQ handler, call this function.
|
|
*
|
|
* @param u32Instance LIN_LPUART instance number
|
|
* @return void
|
|
*
|
|
*
|
|
*/
|
|
void Lpuart_Lin_Ip_TimeoutService(const uint32 u32Instance);
|
|
/**
|
|
* @brief Set Value for Timeout Counter that is used in Lpuart_Lin_Ip_TimeoutService
|
|
*
|
|
* @param u32Instance LPUART instance number
|
|
* @param u32TimeoutValue Timeout Value to be set
|
|
* @return void
|
|
*/
|
|
|
|
void Lpuart_Lin_Ip_SetTimeoutCounter(const uint32 u32Instance, const uint32 u32TimeoutValue);
|
|
|
|
/**
|
|
* @brief Sends frame header out through the LIN_LPUART module using a non-blocking method.
|
|
* @details This function sends LIN Break field, sync field then the ID with
|
|
* correct parity. This function checks if the interface is Master, if not, it will
|
|
* return LPUART_LIN_IP_STATUS_ERROR.This function checks if id is in range from 0 to 0x3F, if not
|
|
* it will return LPUART_LIN_IP_STATUS_ERROR.
|
|
*
|
|
* @param u32Instance LIN_LPUART instance number.
|
|
* @param u8Id Frame Identifier.
|
|
* @return operation status:
|
|
* @retval LPUART_LIN_IP_STATUS_SUCCESS : The transmission is successful.
|
|
* @retval LPUART_LIN_IP_STATUS_BUSY : Bus busy flag is true.
|
|
* @retval LPUART_LIN_IP_STATUS_ERROR : The interface isn't Master or id isn't in range from 0 to 0x3F
|
|
* or node's current state is in SLEEP mode.
|
|
*
|
|
*
|
|
*/
|
|
Lpuart_Lin_Ip_StatusType Lpuart_Lin_Ip_MasterSendHeader(const uint32 u32Instance, const uint8 u8Id);
|
|
|
|
/**
|
|
* @brief LIN_LPUART interrupt handler for RX_TX and Error interrupts.
|
|
*
|
|
* @param u32Instance LIN_LPUART instance number
|
|
* @return void
|
|
*
|
|
*
|
|
*/
|
|
void Lpuart_Lin_Ip_IRQHandler(const uint32 u32Instance);
|
|
|
|
#define LIN_STOP_SEC_CODE
|
|
#include "Lin_MemMap.h"
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
/** @} */
|
|
|
|
#endif /* LPUART_LIN_IP_H */
|