PDL for FM0+  Version1.0
Peripheral Driverl Library for FM0+
C:/pdl_v10/library/driver/mfs/mfs.h File Reference
#include "mcu.h"
#include "pdl_user.h"
Include dependency graph for mfs.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  stc_mfs_fifo_config
 Mfs FIFO configuration. More...
struct  stc_uart_int_sel
 UART interrupt selection. More...
struct  stc_uart_int_cb
 UART interrupt callback function. More...
struct  stc_mfs_uart_config
 UART configuration structure. More...
struct  stc_csio_serial_timer
 CSIO serial timer configuration. More...
struct  stc_csio_cs
 CSIO chip selection configuration. More...
struct  stc_csio_int_sel
 CSIO interrupt selection. More...
struct  stc_csio_int_cb
 CSIO interrupt callback function. More...
struct  stc_mfs_csio_config
 CSIO configuration structure. More...
struct  stc_i2c_int_sel
 I2C interrupt selection. More...
struct  stc_i2c_int_cb
 I2C interrupt callback function. More...
struct  stc_mfs_i2c_config
 I2C configuration structure. More...
struct  stc_lin_int_sel
 LIN interrupt selection. More...
struct  stc_lin_int_cb
 LIN interrupt callback function. More...
struct  stc_mfs_lin_config
 LIN configuration structure. More...
struct  stc_mfsn
 MFS common instance structure. More...
struct  stc_mfs_intern_data
 MFS module internal data, storing internal information for each enabled MFS instance. More...
struct  stc_mfs_instance_data
 MFS instance data type. More...

Defines

#define stc_mfsn_uart_t   FM0P_MFS_UART_TypeDef
#define stc_mfsn_csio_t   FM0P_MFS_CSIO_TypeDef
#define stc_mfsn_i2c_t   FM0P_MFS_I2C_TypeDef
#define stc_mfsn_lin_t   FM0P_MFS_LIN_TypeDef
#define UART0   (*((volatile stc_mfsn_uart_t *) FM0P_MFS0_UART_BASE))
#define UART1   (*((volatile stc_mfsn_uart_t *) FM0P_MFS1_UART_BASE))
#define UART2   (*((volatile stc_mfsn_uart_t *) FM0P_MFS2_UART_BASE))
#define UART3   (*((volatile stc_mfsn_uart_t *) FM0P_MFS3_UART_BASE))
#define UART4   (*((volatile stc_mfsn_uart_t *) FM0P_MFS4_UART_BASE))
#define UART5   (*((volatile stc_mfsn_uart_t *) FM0P_MFS5_UART_BASE))
#define UART6   (*((volatile stc_mfsn_uart_t *) FM0P_MFS6_UART_BASE))
#define UART7   (*((volatile stc_mfsn_uart_t *) FM0P_MFS7_UART_BASE))
#define UART8   (*((volatile stc_mfsn_uart_t *) FM0P_MFS8_UART_BASE))
#define UART9   (*((volatile stc_mfsn_uart_t *) FM0P_MFS9_UART_BASE))
#define UART10   (*((volatile stc_mfsn_uart_t *) FM0P_MFS10_UART_BASE))
#define UART11   (*((volatile stc_mfsn_uart_t *) FM0P_MFS11_UART_BASE))
#define UART12   (*((volatile stc_mfsn_uart_t *) FM0P_MFS12_UART_BASE))
#define UART13   (*((volatile stc_mfsn_uart_t *) FM0P_MFS13_UART_BASE))
#define UART14   (*((volatile stc_mfsn_uart_t *) FM0P_MFS14_UART_BASE))
#define UART15   (*((volatile stc_mfsn_uart_t *) FM0P_MFS15_UART_BASE))
#define CSIO0   (*((volatile stc_mfsn_csio_t *) FM0P_MFS0_CSIO_BASE))
#define CSIO1   (*((volatile stc_mfsn_csio_t *) FM0P_MFS1_CSIO_BASE))
#define CSIO2   (*((volatile stc_mfsn_csio_t *) FM0P_MFS2_CSIO_BASE))
#define CSIO3   (*((volatile stc_mfsn_csio_t *) FM0P_MFS3_CSIO_BASE))
#define CSIO4   (*((volatile stc_mfsn_csio_t *) FM0P_MFS4_CSIO_BASE))
#define CSIO5   (*((volatile stc_mfsn_csio_t *) FM0P_MFS5_CSIO_BASE))
#define CSIO6   (*((volatile stc_mfsn_csio_t *) FM0P_MFS6_CSIO_BASE))
#define CSIO7   (*((volatile stc_mfsn_csio_t *) FM0P_MFS7_CSIO_BASE))
#define CSIO8   (*((volatile stc_mfsn_csio_t *) FM0P_MFS8_CSIO_BASE))
#define CSIO9   (*((volatile stc_mfsn_csio_t *) FM0P_MFS9_CSIO_BASE))
#define CSIO10   (*((volatile stc_mfsn_csio_t *) FM0P_MFS10_CSIO_BASE))
#define CSIO11   (*((volatile stc_mfsn_csio_t *) FM0P_MFS11_CSIO_BASE))
#define CSIO12   (*((volatile stc_mfsn_csio_t *) FM0P_MFS12_CSIO_BASE))
#define CSIO13   (*((volatile stc_mfsn_csio_t *) FM0P_MFS13_CSIO_BASE))
#define CSIO14   (*((volatile stc_mfsn_csio_t *) FM0P_MFS14_CSIO_BASE))
#define CSIO15   (*((volatile stc_mfsn_csio_t *) FM0P_MFS15_CSIO_BASE))
#define I2C0   (*((volatile stc_mfsn_i2c_t *) FM0P_MFS0_I2C_BASE))
#define I2C1   (*((volatile stc_mfsn_i2c_t *) FM0P_MFS1_I2C_BASE))
#define I2C2   (*((volatile stc_mfsn_i2c_t *) FM0P_MFS2_I2C_BASE))
#define I2C3   (*((volatile stc_mfsn_i2c_t *) FM0P_MFS3_I2C_BASE))
#define I2C4   (*((volatile stc_mfsn_i2c_t *) FM0P_MFS4_I2C_BASE))
#define I2C5   (*((volatile stc_mfsn_i2c_t *) FM0P_MFS5_I2C_BASE))
#define I2C6   (*((volatile stc_mfsn_i2c_t *) FM0P_MFS6_I2C_BASE))
#define I2C7   (*((volatile stc_mfsn_i2c_t *) FM0P_MFS7_I2C_BASE))
#define I2C8   (*((volatile stc_mfsn_i2c_t *) FM0P_MFS8_I2C_BASE))
#define I2C9   (*((volatile stc_mfsn_i2c_t *) FM0P_MFS9_I2C_BASE))
#define I2C10   (*((volatile stc_mfsn_i2c_t *) FM0P_MFS10_I2C_BASE))
#define I2C11   (*((volatile stc_mfsn_i2c_t *) FM0P_MFS11_I2C_BASE))
#define I2C12   (*((volatile stc_mfsn_i2c_t *) FM0P_MFS12_I2C_BASE))
#define I2C13   (*((volatile stc_mfsn_i2c_t *) FM0P_MFS13_I2C_BASE))
#define I2C14   (*((volatile stc_mfsn_i2c_t *) FM0P_MFS14_I2C_BASE))
#define I2C15   (*((volatile stc_mfsn_i2c_t *) FM0P_MFS15_I2C_BASE))
#define LIN0   (*((volatile stc_mfsn_lin_t *) FM0P_MFS0_LIN_BASE))
#define LIN1   (*((volatile stc_mfsn_lin_t *) FM0P_MFS1_LIN_BASE))
#define LIN2   (*((volatile stc_mfsn_lin_t *) FM0P_MFS2_LIN_BASE))
#define LIN3   (*((volatile stc_mfsn_lin_t *) FM0P_MFS3_LIN_BASE))
#define LIN4   (*((volatile stc_mfsn_lin_t *) FM0P_MFS4_LIN_BASE))
#define LIN5   (*((volatile stc_mfsn_lin_t *) FM0P_MFS5_LIN_BASE))
#define LIN6   (*((volatile stc_mfsn_lin_t *) FM0P_MFS6_LIN_BASE))
#define LIN7   (*((volatile stc_mfsn_lin_t *) FM0P_MFS7_LIN_BASE))
#define LIN8   (*((volatile stc_mfsn_lin_t *) FM0P_MFS8_LIN_BASE))
#define LIN9   (*((volatile stc_mfsn_lin_t *) FM0P_MFS9_LIN_BASE))
#define LIN10   (*((volatile stc_mfsn_lin_t *) FM0P_MFS10_LIN_BASE))
#define LIN11   (*((volatile stc_mfsn_lin_t *) FM0P_MFS11_LIN_BASE))
#define LIN12   (*((volatile stc_mfsn_lin_t *) FM0P_MFS12_LIN_BASE))
#define LIN13   (*((volatile stc_mfsn_lin_t *) FM0P_MFS13_LIN_BASE))
#define LIN14   (*((volatile stc_mfsn_lin_t *) FM0P_MFS14_LIN_BASE))
#define LIN15   (*((volatile stc_mfsn_lin_t *) FM0P_MFS15_LIN_BASE))
#define MFS_INSTANCE_COUNT
#define MFS0_DATA_REG_ADDR   (uint32_t)(&FM0P_MFS0_UART->TDR)
#define MFS1_DATA_REG_ADDR   (uint32_t)(&FM0P_MFS1_UART->TDR)
#define MFS2_DATA_REG_ADDR   (uint32_t)(&FM0P_MFS2_UART->TDR)
#define MFS3_DATA_REG_ADDR   (uint32_t)(&FM0P_MFS3_UART->TDR)
#define MFS4_DATA_REG_ADDR   (uint32_t)(&FM0P_MFS4_UART->TDR)
#define MFS5_DATA_REG_ADDR   (uint32_t)(&FM0P_MFS5_UART->TDR)
#define MFS6_DATA_REG_ADDR   (uint32_t)(&FM0P_MFS6_UART->TDR)
#define MFS7_DATA_REG_ADDR   (uint32_t)(&FM0P_MFS7_UART->TDR)
#define MFS8_DATA_REG_ADDR   (uint32_t)(&FM0P_MFS8_UART->TDR)
#define MFS9_DATA_REG_ADDR   (uint32_t)(&FM0P_MFS9_UART->TDR)
#define MFS10_DATA_REG_ADDR   (uint32_t)(&FM0P_MFS10_UART->TDR)
#define MFS11_DATA_REG_ADDR   (uint32_t)(&FM0P_MFS11_UART->TDR)
#define MFS12_DATA_REG_ADDR   (uint32_t)(&FM0P_MFS12_UART->TDR)
#define MFS13_DATA_REG_ADDR   (uint32_t)(&FM0P_MFS13_UART->TDR)
#define MFS14_DATA_REG_ADDR   (uint32_t)(&FM0P_MFS14_UART->TDR)
#define MFS15_DATA_REG_ADDR   (uint32_t)(&FM0P_MFS15_UART->TDR)

Typedefs

typedef enum en_mfs_fifo_sel en_mfs_fifo_sel_t
 Mfs FIFO Selection.
typedef struct stc_mfs_fifo_config stc_mfs_fifo_config_t
 Mfs FIFO configuration.
typedef enum en_mfs_fifo en_mfs_fifo_t
 Mfs FIFO Number.
typedef enum en_mfs_uart_mode en_uart_mode_t
 MFS UART mode.
typedef enum en_uart_data_len en_uart_data_len_t
 UART data length.
typedef enum en_uart_parity en_uart_parity_t
 UART parity format.
typedef enum en_uart_stop_bit en_uart_stop_bit_t
 UART stop bits length.
typedef enum en_uart_data_dir en_uart_data_dir_t
 UART data direction.
typedef enum en_uart_func en_uart_func_t
 UART functions.
typedef struct stc_uart_int_sel stc_uart_int_sel_t
 UART interrupt selection.
typedef struct stc_uart_int_cb stc_uart_int_cb_t
 UART interrupt callback function.
typedef enum en_uart_status en_uart_status_t
 UART status types.
typedef struct stc_mfs_uart_config stc_mfs_uart_config_t
 UART configuration structure.
typedef enum en_csio_ms_mode en_csio_ms_mode_t
 CSIO mode (Master/Slave)
typedef enum en_csio_act_mode en_csio_act_mode_t
 CSIO active mode (Normal/SPI)
typedef enum en_csio_data_len en_csio_data_len_t
 CSIO data length.
typedef enum en_csio_sync_wait_time en_csio_sync_wait_time_t
 CSIO synchronous wait time.
typedef enum en_csio_data_dir en_csio_data_dir_t
 CSIO bit direction.
typedef enum en_csio_timer_clk en_csio_timer_clk_t
 CSIO serial timer clock division.
typedef struct
stc_csio_serial_timer 
stc_csio_serial_timer_t
 CSIO serial timer configuration.
typedef enum en_cs_pin_sel en_cs_pin_sel_t
 CSIO chip selection pin.
typedef enum en_cs_pin_level en_cs_pin_level_t
 CSIO chip selection pin level.
typedef enum en_cs_timing_clk en_cs_timing_clk_t
 CSIO chip selection clock division.
typedef struct stc_csio_cs stc_csio_cs_t
 CSIO chip selection configuration.
typedef enum en_csio_func en_csio_func_t
 CSIO function.
typedef struct stc_csio_int_sel stc_csio_int_sel_t
 CSIO interrupt selection.
typedef struct stc_csio_int_cb stc_csio_int_cb_t
 CSIO interrupt callback function.
typedef enum en_csio_status en_csio_status_t
 CSIO status types.
typedef struct stc_mfs_csio_config stc_mfs_csio_config_t
 CSIO configuration structure.
typedef enum en_i2c_mode en_i2c_mode_t
 I2C mode.
typedef enum en_i2c_ack en_i2c_ack_t
 I2C ACK types.
typedef struct stc_i2c_int_sel stc_i2c_int_sel_t
 I2C interrupt selection.
typedef struct stc_i2c_int_cb stc_i2c_int_cb_t
 I2C interrupt callback function.
typedef enum en_i2c_status en_i2c_status_t
 I2C status types.
typedef enum en_i2c_data_dir en_i2c_data_dir_t
 I2C data direction(used in slave mode)
typedef struct stc_mfs_i2c_config stc_mfs_i2c_config_t
 I2C configuration structure.
typedef enum en_lin_ms_mode en_lin_ms_mode_t
 MFS LIN mode (Master/Slave)
typedef enum en_lin_stop_bit en_lin_stop_bit_t
 LIN stop bit length.
typedef enum en_lin_break_length en_lin_break_len_t
 Mfs Lin Break Generation Length (only applicable in LIN master mode)
typedef enum
en_lin_delimiter_length 
en_lin_delimiter_len_t
 Mfs Lin Break Delimiter Length (only applicable in LIN master mode)
typedef enum en_lin_func en_lin_func_t
 LIN function.
typedef struct stc_lin_int_sel stc_lin_int_sel_t
 LIN interrupt selection.
typedef struct stc_lin_int_cb stc_lin_int_cb_t
 LIN interrupt callback function.
typedef enum en_lin_status en_lin_status_t
 LIN status types.
typedef struct stc_mfs_lin_config stc_mfs_lin_config_t
 LIN configuration structure.
typedef enum en_mfs_instance_index en_mfs_instance_index_t
 Enumeration to define an index for each enabled MFS instance.
typedef struct stc_mfsn stc_mfsn_t
 MFS common instance structure.
typedef enum en_mfs_mode en_mfs_mode_t
 MFS mode.
typedef struct stc_mfs_intern_data stc_mfs_intern_data_t
 MFS module internal data, storing internal information for each enabled MFS instance.
typedef struct
stc_mfs_instance_data 
stc_mfs_instance_data_t
 MFS instance data type.

Enumerations

enum  en_mfs_fifo_sel { MfsTxFifo1RxFifo2 = 0u, MfsTxFifo2RxFifo1 = 1u }
 Mfs FIFO Selection. More...
enum  en_mfs_fifo { MfsFifo1 = 0u, MfsFifo2 = 1u }
 Mfs FIFO Number. More...
enum  en_mfs_uart_mode { UartNormal = 0u, UartMulti = 1u }
 MFS UART mode. More...
enum  en_uart_data_len {
  UartEightBits = 0u, UartFiveBits = 1u, UartSixBits = 2u, UartSevenBits = 3u,
  UartNineBits = 4u
}
 UART data length. More...
enum  en_uart_parity { UartParityNone = 0u, UartParityEven = 2u, UartParityOdd = 3u }
 UART parity format. More...
enum  en_uart_stop_bit { UartOneStopBit = 0u, UartTwoStopBits = 1u, UartThreeStopBits = 2u, UartFourStopBits = 3u }
 UART stop bits length. More...
enum  en_uart_data_dir { UartDataLsbFirst = 0u, UartDataMsbFirst = 1u }
 UART data direction. More...
enum  en_uart_func { UartTx = 0u, UartRx = 1u }
 UART functions. More...
enum  en_uart_status {
  UartParityError = 0u, UartFrameError = 1u, UartOverrunError = 2u, UartRxFull = 3u,
  UartTxEmpty = 4u, UartTxIdle = 5u, UartTxFifoRequest = 6u
}
 UART status types. More...
enum  en_csio_ms_mode { CsioMaster = 0, CsioSlave = 1 }
 CSIO mode (Master/Slave) More...
enum  en_csio_act_mode { CsioActNormalMode = 0u, CsioActSpiMode = 1u }
 CSIO active mode (Normal/SPI) More...
enum  en_csio_data_len {
  CsioFiveBits = 0u, CsioSixBits = 1u, CsioSevenBits = 2u, CsioEightBits = 3u,
  CsioNineBits = 4u, CsioTenBits = 5u, CsioElevenBits = 6u, CsioTwelveBits = 7u,
  CsioThirteenBits = 8u, CsioFourteenBits = 9u, CsioFifteenBits = 10u, CsioSixteenBits = 11u
}
 CSIO data length. More...
enum  en_csio_sync_wait_time { CsioSyncWaitZero = 0u, CsioSyncWaitOne = 1u, CsioSyncWaitTwo = 2u, CsioSyncWaitThree = 3u }
 CSIO synchronous wait time. More...
enum  en_csio_data_dir { CsioDataLsbFirst = 0u, CsioDataMsbFirst = 1u }
 CSIO bit direction. More...
enum  en_csio_timer_clk {
  CsioTimerNoDiv = 0u, CsioTimerDiv2 = 1u, CsioTimerDiv4 = 2u, CsioTimerDiv8 = 3u,
  CsioTimerDiv16 = 4u, CsioTimerDiv32 = 5u, CsioTimerDiv64 = 6u, CsioTimerDiv128 = 7u,
  CsioTimerDiv256 = 8u
}
 CSIO serial timer clock division. More...
enum  en_cs_pin_sel { CsPinScs0 = 0u, CsPinScs1 = 1u, CsPinScs2 = 2u, CsPinScs3 = 3u }
 CSIO chip selection pin. More...
enum  en_cs_pin_level { CsLowActive = 0u, CsHighActive = 1u }
 CSIO chip selection pin level. More...
enum  en_cs_timing_clk {
  CsClkNoDiv = 0u, CsClkDiv2 = 1u, CsClkDiv4 = 2u, CsClkDiv8 = 3u,
  CsClkDiv16 = 4u, CsClkDiv32 = 5u, CsClkDiv64 = 6u
}
 CSIO chip selection clock division. More...
enum  en_csio_func { CsioTx = 0u, CsioRx = 1u, CsioSerialTimer = 2u, CsioCsErrOccur = 3u }
 CSIO function. More...
enum  en_csio_status {
  CsioOverrunError, CsioRxFull, CsioTxEmpty, CsioTxIdle,
  CsioTxFifoRequest, CsioCsErrIntFlag, CsioTimerIntFlag
}
 CSIO status types. More...
enum  en_i2c_mode { I2cMaster = 0u, I2cSlave = 1u }
 I2C mode. More...
enum  en_i2c_ack { I2cAck = 0u, I2cNAck = 1u }
 I2C ACK types. More...
enum  en_i2c_status {
  I2cOverrunError = 0u, I2cRxFull = 1u, I2cTxEmpty = 2u, I2cTxIdle = 3u,
  I2cTxFifoRequest = 4u, I2cFirstByteDetect = 5u, I2cReservedByteDetect = 6u, I2cStopDetect = 7u,
  I2cBusStatus = 8u, I2cBusErr = 9u, I2cRxTxInt = 10u, I2cDevAddrMatch = 11u
}
 I2C status types. More...
enum  en_i2c_data_dir { i2c_master_tx_slave_rx = 0u, i2c_slave_tx_master_rx = 1u }
 I2C data direction(used in slave mode) More...
enum  en_lin_ms_mode { LinMasterMode = 0u, LinSlaveMode = 1u }
 MFS LIN mode (Master/Slave) More...
enum  en_lin_stop_bit { LinOneStopBit = 0u, LinTwoStopBits = 1u, LinThreeStopBits = 2u, LinFourStopBits = 3u }
 LIN stop bit length. More...
enum  en_lin_break_length { LinBreakLength13 = 0u, LinBreakLength14 = 1u, LinBreakLength15 = 2u, LinBreakLength16 = 3u }
 Mfs Lin Break Generation Length (only applicable in LIN master mode) More...
enum  en_lin_delimiter_length { LinDelimiterLength1 = 0u, LinDelimiterLength2 = 1u, LinDelimiterLength3 = 2u, LinDelimiterLength4 = 3u }
 Mfs Lin Break Delimiter Length (only applicable in LIN master mode) More...
enum  en_lin_func { LinTx = 0u, LinRx = 1u }
 LIN function. More...
enum  en_lin_status {
  LinFrameError = 0u, LinOverrunError = 1u, LinRxFull = 2u, LinTxEmpty = 3u,
  LinTxIdle = 4u, LinBreakFlag = 5u, LinTxFifoRequest = 6u
}
 LIN status types. More...
enum  en_mfs_instance_index {
  MfsInstanceIndexMfs0, MfsInstanceIndexMfs1, MfsInstanceIndexMfs2, MfsInstanceIndexMfs3,
  MfsInstanceIndexMfs4, MfsInstanceIndexMfs5, MfsInstanceIndexMfs6, MfsInstanceIndexMfs7,
  MfsInstanceIndexMfs8, MfsInstanceIndexMfs9, MfsInstanceIndexMfs10, MfsInstanceIndexMfs11,
  MfsInstanceIndexMfs12, MfsInstanceIndexMfs13, MfsInstanceIndexMfs14, MfsInstanceIndexMfs15,
  MfsInstanceIndexMax, MfsInstanceIndexUnknown = 0xFFu
}
 Enumeration to define an index for each enabled MFS instance. More...
enum  en_mfs_mode {
  MfsInitMode = 0u, MfsUartMode = 1u, MfsCsioMode = 2u, MfsI2cMode = 3u,
  MfsLinMode = 4u
}
 MFS mode. More...

Functions

void MfsUartIrqHandlerTx (volatile FM0P_MFS_UART_TypeDef *pstcUart, stc_mfs_intern_data_t *pstcMfsInternData)
 MFS transmit interrupt service routine.
void MfsUartIrqHandlerRx (volatile FM0P_MFS_UART_TypeDef *pstcUart, stc_mfs_intern_data_t *pstcMfsInternData)
 UART receive interrupt service routine.
en_result_t Mfs_Uart_EnableInt (volatile FM0P_MFS_UART_TypeDef *pstcUart, stc_uart_int_sel_t *pstcInt, stc_uart_int_cb_t *pstcIntCb)
 Enable UART interrupts.
en_result_t Mfs_Uart_DisableInt (volatile FM0P_MFS_UART_TypeDef *pstcUart, stc_uart_int_sel_t *pstcInt)
 Disable UART interrupts.
en_result_t Mfs_Uart_Init (volatile FM0P_MFS_UART_TypeDef *pstcUart, const stc_mfs_uart_config_t *pstcConfig)
 Initialization of a MFS module to activate as UART.
en_result_t Mfs_Uart_DeInit (volatile FM0P_MFS_UART_TypeDef *pstcUart)
 Deinitialisation of a MFS module activating as UART.
en_result_t Mfs_Uart_SetBaudRate (volatile FM0P_MFS_UART_TypeDef *pstcUart, uint32_t u32BaudRate)
 Set the baudrate of UART.
en_result_t Mfs_Uart_EnableFunc (volatile FM0P_MFS_UART_TypeDef *pstcUart, en_uart_func_t enFunc)
 Enable UART functions.
en_result_t Mfs_Uart_DisableFunc (volatile FM0P_MFS_UART_TypeDef *pstcUart, en_uart_func_t enFunc)
 Disable UART functions.
boolean_t Mfs_Uart_GetStatus (volatile FM0P_MFS_UART_TypeDef *pstcUart, en_uart_status_t enStatus)
 Get status of UART according to status type.
en_result_t Mfs_Uart_ClrStatus (volatile FM0P_MFS_UART_TypeDef *pstcUart, en_uart_status_t enStatus)
 Clear status of UART according to status type.
en_result_t Mfs_Uart_SendData (volatile FM0P_MFS_UART_TypeDef *pstcUart, uint16_t u16Data)
 Write UART data buffer.
uint16_t Mfs_Uart_ReceiveData (volatile FM0P_MFS_UART_TypeDef *pstcUart)
 Read UART data buffer.
en_result_t Mfs_Uart_ResetFifo (volatile FM0P_MFS_UART_TypeDef *pstcUart, en_mfs_fifo_t enFifo)
 Reset UART FIFO.
en_result_t Mfs_Uart_SetFifoCount (volatile FM0P_MFS_UART_TypeDef *pstcUart, en_mfs_fifo_t enFifo, uint8_t u8Count)
 Set UART FIFO count.
uint8_t Mfs_Uart_GetFifoCount (volatile FM0P_MFS_UART_TypeDef *pstcUart, en_mfs_fifo_t enFifo)
 Get UART FIFO count.
void MfsCsioIrqHandlerTx (volatile FM0P_MFS_CSIO_TypeDef *pstcCsio, stc_mfs_intern_data_t *pstcMfsInternData)
 CSIO transfer interrupt service routine.
void MfsCsioIrqHandlerRx (volatile FM0P_MFS_CSIO_TypeDef *pstcCsio, stc_mfs_intern_data_t *pstcMfsInternData)
 CSIO receive interrupt service routine.
void MfsCsioIrqHandlerStatus (volatile FM0P_MFS_CSIO_TypeDef *pstcCsio, stc_mfs_intern_data_t *pstcMfsInternData)
 CSIO status interrupt service routine.
en_result_t Mfs_Csio_EnableInt (volatile FM0P_MFS_CSIO_TypeDef *pstcCsio, stc_csio_int_sel_t *pstcInt, stc_csio_int_cb_t *pstcIntCb)
 Enable CSIO interrupts.
en_result_t Mfs_Csio_DisableInt (volatile FM0P_MFS_CSIO_TypeDef *pstcCsio, stc_csio_int_sel_t *pstcInt)
 Disable CSIO interrupts.
en_result_t Mfs_Csio_Init (volatile FM0P_MFS_CSIO_TypeDef *pstcCsio, const stc_mfs_csio_config_t *pstcConfig)
 Initialization of a MFS module to activate as CSIO.
en_result_t Mfs_Csio_DeInit (volatile FM0P_MFS_CSIO_TypeDef *pstcCsio)
 Deinitialisation of a MFS module activating as CSIO.
en_result_t Mfs_Csio_SetBaudRate (volatile FM0P_MFS_CSIO_TypeDef *pstcCsio, uint32_t u32BaudRate)
 Set the baudrate of CSIO.
en_result_t Mfs_Csio_SetTimerCompareValue (volatile FM0P_MFS_CSIO_TypeDef *pstcCsio, uint16_t u16CompareValue)
 Set the compare value of CSIO serial timer.
en_result_t Mfs_Csio_SetCsTransferByteCount (volatile FM0P_MFS_CSIO_TypeDef *pstcCsio, en_cs_pin_sel_t enCsPin, uint8_t u8ByteCnt)
 Set the transfer byte count of a selected chip selection pin.
en_result_t Mfs_Csio_SetCsHoldStatus (volatile FM0P_MFS_CSIO_TypeDef *pstcCsio, boolean_t bHold)
 Set the hold status of chip selection pin.
en_result_t Mfs_Csio_SetTimerTransferByteCount (volatile FM0P_MFS_CSIO_TypeDef *pstcCsio, uint8_t u8ByteCnt)
 Set the transfer byte count of CSIO serial timer.
en_result_t Mfs_Csio_EnableFunc (volatile FM0P_MFS_CSIO_TypeDef *pstcCsio, en_csio_func_t enFunc)
 Enable CSIO functions.
en_result_t Mfs_Csio_DisableFunc (volatile FM0P_MFS_CSIO_TypeDef *pstcCsio, en_csio_func_t enFunc)
 Disable CSIO functions.
boolean_t Mfs_Csio_GetStatus (volatile FM0P_MFS_CSIO_TypeDef *pstcCsio, en_csio_status_t enStatus)
 Get status of CSIO according to status type.
en_result_t Mfs_Csio_ClrStatus (volatile FM0P_MFS_CSIO_TypeDef *pstcCsio, en_csio_status_t enStatus)
 Clear status of CSIO according to status type.
en_result_t Mfs_Csio_SendData (volatile FM0P_MFS_CSIO_TypeDef *pstcCsio, uint16_t u16Data, boolean_t bSotEn)
 Write CSIO data buffer.
uint16_t Mfs_Csio_ReceiveData (volatile FM0P_MFS_CSIO_TypeDef *pstcCsio)
 Read CSIO data buffer.
en_result_t Mfs_Csio_ResetFifo (volatile FM0P_MFS_CSIO_TypeDef *pstcCsio, en_mfs_fifo_t enFifo)
 Reset CSIO FIFO.
en_result_t Mfs_Csio_SetFifoCount (volatile FM0P_MFS_CSIO_TypeDef *pstcCsio, en_mfs_fifo_t enFifo, uint8_t u8Count)
 Set CSIO FIFO count.
uint8_t Mfs_Csio_GetFifoCount (volatile FM0P_MFS_CSIO_TypeDef *pstcCsio, en_mfs_fifo_t enFifo)
 Get CSIO FIFO count.
void MfsI2cIrqHandlerTx (volatile FM0P_MFS_I2C_TypeDef *pstcI2c, stc_mfs_intern_data_t *pstcMfsInternData)
 I2C transfer interrupt service routine.
void MfsI2cIrqHandlerRx (volatile FM0P_MFS_I2C_TypeDef *pstcI2c, stc_mfs_intern_data_t *pstcMfsInternData)
 I2C receive interrupt service routine.
void MfsI2cIrqHandlerStatus (volatile FM0P_MFS_I2C_TypeDef *pstcI2c, stc_mfs_intern_data_t *pstcMfsInternData)
 I2C status interrupt service routine.
en_result_t Mfs_I2c_EnableInt (volatile FM0P_MFS_I2C_TypeDef *pstcI2c, stc_i2c_int_sel_t *pstcInt, stc_i2c_int_cb_t *pstcIntCb)
 Enable I2C interrupts.
en_result_t Mfs_I2c_DisableInt (volatile FM0P_MFS_I2C_TypeDef *pstcI2c, stc_i2c_int_sel_t *pstcInt)
 Disable I2C interrupts.
en_result_t Mfs_I2c_Init (volatile FM0P_MFS_I2C_TypeDef *pstcI2c, const stc_mfs_i2c_config_t *pstcConfig)
 Initialization of a MFS module to activate as I2C.
en_result_t Mfs_I2c_DeInit (volatile FM0P_MFS_I2C_TypeDef *pstcI2c)
 Deinitialisation of a MFS module activating as I2C.
en_result_t Mfs_I2c_GenerateStart (volatile FM0P_MFS_I2C_TypeDef *pstcI2c)
 Generate start signal of I2C.
en_result_t Mfs_I2c_GenerateRestart (volatile FM0P_MFS_I2C_TypeDef *pstcI2c)
 Generate restart signal of I2C.
en_result_t Mfs_I2c_GenerateStop (volatile FM0P_MFS_I2C_TypeDef *pstcI2c)
 Generate stop signal of I2C.
en_result_t Mfs_I2c_SetBaudRate (volatile FM0P_MFS_I2C_TypeDef *pstcI2c, uint32_t u32BaudRate)
 Set the baudrate of I2C.
en_result_t Mfs_I2c_SendData (volatile FM0P_MFS_I2C_TypeDef *pstcI2c, uint8_t u8Data)
 Write I2C data buffer.
uint8_t Mfs_I2c_ReceiveData (volatile FM0P_MFS_I2C_TypeDef *pstcI2c)
 Read I2C data buffer.
en_result_t Mfs_I2c_ConfigAck (volatile FM0P_MFS_I2C_TypeDef *pstcI2c, en_i2c_ack_t enAck)
 Configure ACK signal sent to master.
en_i2c_ack_t Mfs_I2c_GetAck (volatile FM0P_MFS_I2C_TypeDef *pstcI2c)
 Get the ACK signal from slave.
boolean_t Mfs_I2c_GetStatus (volatile FM0P_MFS_I2C_TypeDef *pstcI2c, en_i2c_status_t enStatus)
 Get status of I2C according to status type.
en_result_t Mfs_I2c_ClrStatus (volatile FM0P_MFS_I2C_TypeDef *pstcI2c, en_i2c_status_t enStatus)
 Clear status of I2C according to status type.
en_i2c_data_dir_t Mfs_I2c_GetDataDir (volatile FM0P_MFS_I2C_TypeDef *pstcI2c)
 Get direction of I2C data in slave mode.
en_result_t Mfs_I2c_ResetFifo (volatile FM0P_MFS_I2C_TypeDef *pstcI2c, en_mfs_fifo_t enFifo)
 Reset I2C FIFO.
en_result_t Mfs_I2c_SetFifoCount (volatile FM0P_MFS_I2C_TypeDef *pstcI2c, en_mfs_fifo_t enFifo, uint8_t u8Count)
 Set I2C FIFO count.
uint8_t Mfs_I2c_GetFifoCount (volatile FM0P_MFS_I2C_TypeDef *pstcI2c, en_mfs_fifo_t enFifo)
 Get I2C FIFO count.
void MfsLinIrqHandlerTx (volatile FM0P_MFS_LIN_TypeDef *pstcLin, stc_mfs_intern_data_t *pstcMfsInternData)
 LIN transmit interrupt service routine.
void MfsLinIrqHandlerRx (volatile FM0P_MFS_LIN_TypeDef *pstcLin, stc_mfs_intern_data_t *pstcMfsInternData)
 LIN receive interrupt service routine.
void MfsLinIrqHandlerStatus (volatile FM0P_MFS_LIN_TypeDef *pstcLin, stc_mfs_intern_data_t *pstcMfsInternData)
 LIN status interrupt service routine.
en_result_t Mfs_Lin_EnableInt (volatile FM0P_MFS_LIN_TypeDef *pstcLin, stc_lin_int_sel_t *pstcInt, stc_lin_int_cb_t *pstcIntCb)
 Enable LIN interrupts.
en_result_t Mfs_Lin_DisableInt (volatile FM0P_MFS_LIN_TypeDef *pstcLin, stc_lin_int_sel_t *pstcInt)
 Disable LIN interrupts.
en_result_t Mfs_Lin_Init (volatile FM0P_MFS_LIN_TypeDef *pstcLin, const stc_mfs_lin_config_t *pstcConfig)
 Initialization of a MFS module to activate as LIN.
en_result_t Mfs_Lin_DeInit (volatile FM0P_MFS_LIN_TypeDef *pstcLin)
 Deinitialisation of a MFS module activating as LIN.
en_result_t Mfs_Lin_SetBaudRate (volatile FM0P_MFS_LIN_TypeDef *pstcLin, uint32_t u32BaudRate)
 Set the baudrate of LIN.
en_result_t Mfs_Lin_GenerateBreakField (volatile FM0P_MFS_LIN_TypeDef *pstcLin)
 Generate LIN break filed.
en_result_t Mfs_Lin_EnableFunc (volatile FM0P_MFS_LIN_TypeDef *pstcLin, en_lin_func_t enFunc)
 Enable LIN functions.
en_result_t Mfs_Lin_DisableFunc (volatile FM0P_MFS_LIN_TypeDef *pstcLin, en_lin_func_t enFunc)
 Disable LIN functions.
boolean_t Mfs_Lin_GetStatus (volatile FM0P_MFS_LIN_TypeDef *pstcLin, en_lin_status_t enStatus)
 Get status of LIN according to status type.
en_result_t Mfs_Lin_ClrStatus (volatile FM0P_MFS_LIN_TypeDef *pstcLin, en_lin_status_t enStatus)
 Clear status of LIN according to status type.
en_result_t Mfs_Lin_SendData (volatile FM0P_MFS_LIN_TypeDef *pstcLin, uint8_t Data)
 Write LIN data buffer.
uint8_t Mfs_Lin_ReceiveData (volatile FM0P_MFS_LIN_TypeDef *pstcLin)
 Read LIN data buffer.
en_result_t Mfs_Lin_ResetFifo (volatile FM0P_MFS_LIN_TypeDef *pstcLin, en_mfs_fifo_t enFifo)
 Reset LIN FIFO.
en_result_t Mfs_Lin_SetFifoCount (volatile FM0P_MFS_LIN_TypeDef *pstcLin, en_mfs_fifo_t enFifo, uint8_t u8Count)
 Set LIN FIFO count.
uint8_t Mfs_Lin_GetFifoCount (volatile FM0P_MFS_LIN_TypeDef *pstcLin, en_mfs_fifo_t enFifo)
 Get LIN FIFO count.

Variables

stc_mfs_instance_data_t m_astcMfsInstanceDataLut [(uint8_t)(PDL_PERIPHERAL_ENABLE_MFS0==PDL_ON)+(uint8_t)(PDL_PERIPHERAL_ENABLE_MFS1==PDL_ON)+(uint8_t)(PDL_PERIPHERAL_ENABLE_MFS2==PDL_ON)+(uint8_t)(PDL_PERIPHERAL_ENABLE_MFS3==PDL_ON)+(uint8_t)(PDL_PERIPHERAL_ENABLE_MFS4==PDL_ON)+(uint8_t)(PDL_PERIPHERAL_ENABLE_MFS5==PDL_ON)+(uint8_t)(PDL_PERIPHERAL_ENABLE_MFS6==PDL_ON)+(uint8_t)(PDL_PERIPHERAL_ENABLE_MFS7==PDL_ON)+(uint8_t)(PDL_PERIPHERAL_ENABLE_MFS8==PDL_ON)+(uint8_t)(PDL_PERIPHERAL_ENABLE_MFS9==PDL_ON)+(uint8_t)(PDL_PERIPHERAL_ENABLE_MFS10==PDL_ON)+(uint8_t)(PDL_PERIPHERAL_ENABLE_MFS11==PDL_ON)+(uint8_t)(PDL_PERIPHERAL_ENABLE_MFS12==PDL_ON)+(uint8_t)(PDL_PERIPHERAL_ENABLE_MFS13==PDL_ON)+(uint8_t)(PDL_PERIPHERAL_ENABLE_MFS14==PDL_ON)+(uint8_t)(PDL_PERIPHERAL_ENABLE_MFS15==PDL_ON)]
 Look-up table for all enabled MFS instances and their internal data.

Detailed Description

Headerfile for MFS functions

History:

  • 2014-03-07 1.0 Edison Zhang First version.
  • 2014-03-10 1.1 Edison Zhang Update interrupt callback of I2C

Definition in file mfs.h.