#include "lin_driver.h"
Go to the source code of this file.
Functions | |
status_t | LIN_DRV_Init (uint32_t instance, lin_user_config_t *linUserConfig, lin_state_t *linCurrentState) |
Initializes an instance LIN Hardware Interface for LIN Network. More... | |
status_t | LIN_DRV_Deinit (uint32_t instance) |
Shuts down the LIN Hardware Interface by disabling interrupts and transmitter/receiver. More... | |
lin_callback_t | LIN_DRV_InstallCallback (uint32_t instance, lin_callback_t function) |
Installs callback function that is used for LIN_DRV_IRQHandler. More... | |
status_t | LIN_DRV_SendFrameDataBlocking (uint32_t instance, const uint8_t *txBuff, uint8_t txSize, uint32_t timeoutMSec) |
Sends Frame data out through the LIN Hardware Interface using blocking method. This function will calculate the checksum byte and send it with the frame data. Blocking means that the function does not return until the transmission is complete. This function checks if txSize is in range from 1 to 8. If not, it will return STATUS_ERROR. This function also returns STATUS_ERROR if node's current state is in SLEEP mode. This function checks if the isBusBusy is false, if not it will return LIN_BUS_BUSY. The function does not return until the transmission is complete. If the transmission is successful, it will return STATUS_SUCCESS. If not, it will return STATUS_TIMEOUT. More... | |
status_t | LIN_DRV_SendFrameData (uint32_t instance, const uint8_t *txBuff, uint8_t txSize) |
Sends frame data out through the LIN Hardware Interface using non-blocking method. 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. The function will return immediately after calling this function. If txSize is equal to 0 or greater than 8 or node's current state is in SLEEP mode then the function will return STATUS_ERROR. If isBusBusy is currently true then the function will return LIN_BUS_BUSY. More... | |
status_t | LIN_DRV_GetTransmitStatus (uint32_t instance, uint8_t *bytesRemaining) |
Get status of an on-going non-blocking transmission While sending frame data using non-blocking method, users can use this function to get status of that transmission. The bytesRemaining shows number of bytes that still needed to transmit. More... | |
status_t | LIN_DRV_ReceiveFrameDataBlocking (uint32_t instance, uint8_t *rxBuff, uint8_t rxSize, uint32_t timeoutMSec) |
Receives frame data through the LIN Hardware Interface using blocking method. This function receives data from LPUART module using blocking method, the function does not return until the receive is complete. The interrupt handler LIN_LPUART_DRV_IRQHandler will check the checksum byte. If the checksum is correct, it will receive the frame data. If the checksum is incorrect, this function will return STATUS_TIMEOUT and data in rxBuff might be wrong. This function also check if rxSize is in range from 1 to 8. If not, it will return STATUS_ERROR. This function also returns STATUS_ERROR if node's current state is in SLEEP mode. This function checks if the isBusBusy is false, if not it will return LIN_BUS_BUSY. More... | |
status_t | LIN_DRV_ReceiveFrameData (uint32_t instance, uint8_t *rxBuff, uint8_t rxSize) |
Receives frame data through the LIN Hardware Interface using non-blocking method. This function will check the checksum byte. If the checksum is correct, it will receive it with the frame data. Non-blocking means that the function returns immediately. The application has to get the receive status to know when the reception is complete. The interrupt handler LIN_LPUART_DRV_IRQHandler will check the checksum byte. If the checksum is correct, it will receive the frame data. If the checksum is incorrect, this function will return STATUS_TIMEOUT and data in rxBuff might be wrong. This function also check if rxSize is in range from 1 to 8. If not, it will return STATUS_ERROR. This function also returns STATUS_ERROR if node's current state is in SLEEP mode. This function checks if the isBusBusy is false, if not it will return LIN_BUS_BUSY. More... | |
status_t | LIN_DRV_AbortTransferData (uint32_t instance) |
Aborts an on-going non-blocking transmission/reception. While performing a non-blocking transferring data, users can call this function to terminate immediately the transferring. More... | |
status_t | LIN_DRV_GetReceiveStatus (uint32_t instance, uint8_t *bytesRemaining) |
Get status of an on-going non-blocking reception. This function returns whether the data reception is complete. When performing non-blocking transmit, the user can call this function to ascertain the state of the current receive progress: in progress (STATUS_BUSY) or timeout (STATUS_TIMEOUT) or complete (STATUS_SUCCESS). In addition, if the reception is still in progress, the user can obtain the number of bytes that still needed to receive. More... | |
status_t | LIN_DRV_GoToSleepMode (uint32_t instance) |
Puts current LIN node to sleep mode This function changes current node state to LIN_NODE_STATE_SLEEP_MODE. More... | |
status_t | LIN_DRV_GotoIdleState (uint32_t instance) |
Puts current LIN node to Idle state This function changes current node state to LIN_NODE_STATE_IDLE. More... | |
status_t | LIN_DRV_SendWakeupSignal (uint32_t instance) |
Sends a wakeup signal through the LIN Hardware Interface. More... | |
lin_node_state_t | LIN_DRV_GetCurrentNodeState (uint32_t instance) |
Get the current LIN node state. More... | |
void | LIN_DRV_TimeoutService (uint32_t instance) |
Callback function for Timer Interrupt Handler Users may use (optional, not required) LIN_DRV_TimeoutService to check if timeout has occurred during non-blocking frame data transmission and reception. User may initialize a timer (for example FTM) in Output Compare Mode with period of 500 micro seconds (recommended). In timer IRQ handler, call this function. More... | |
void | LIN_DRV_SetTimeoutCounter (uint32_t instance, uint32_t timeoutValue) |
Set Value for Timeout Counter that is used in LIN_DRV_TimeoutService. More... | |
status_t | LIN_DRV_MasterSendHeader (uint32_t instance, uint8_t id) |
Sends frame header out through the LIN Hardware Interface using a non-blocking method. 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 STATUS_ERROR.This function checks if id is in range from 0 to 0x3F, if not it will return STATUS_ERROR. More... | |
status_t | LIN_DRV_EnableIRQ (uint32_t instance) |
Enables LIN hardware interrupts. More... | |
status_t | LIN_DRV_DisableIRQ (uint32_t instance) |
Disables LIN hardware interrupts. More... | |
void | LIN_DRV_IRQHandler (uint32_t instance) |
Interrupt handler for LIN Hardware Interface. More... | |
status_t | LIN_DRV_AutoBaudCapture (uint32_t instance) |
Captures time interval to capture baudrate automatically when enable autobaud feature. This function should only be used in Slave. The timer should be in input capture mode of both rising and falling edges. The timer input capture pin should be externally connected to RXD pin. More... | |