mbed library sources. Supersedes mbed-src.
Fork of mbed-dev by
Diff: targets/TARGET_NUVOTON/TARGET_NUC472/device/StdDriver/nuc472_can.h
- Revision:
- 153:9398a535854b
- Parent:
- 152:9a67f0b066fc
diff -r 9a67f0b066fc -r 9398a535854b targets/TARGET_NUVOTON/TARGET_NUC472/device/StdDriver/nuc472_can.h --- a/targets/TARGET_NUVOTON/TARGET_NUC472/device/StdDriver/nuc472_can.h Thu Dec 15 11:48:27 2016 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,176 +0,0 @@ -/**************************************************************************//** - * @file can.h - * @version V1.00 - * $Revision: 8 $ - * $Date: 14/09/26 3:38p $ - * @brief NUC472/NUC442 CAN driver header file - * - * @note - * Copyright (C) 2013 Nuvoton Technology Corp. All rights reserved. -*****************************************************************************/ -#ifndef __CAN_H__ -#define __CAN_H__ - -#ifdef __cplusplus -extern "C" -{ -#endif - -/** @addtogroup NUC472_442_Device_Driver NUC472/NUC442 Device Driver - @{ -*/ - -/** @addtogroup NUC472_442_CAN_Driver CAN Driver - @{ -*/ - -/** @addtogroup NUC472_442_CAN_EXPORTED_TYPEDEF CAN Exported Type Defines - @{ -*/ - -/** - * @details Message ID types. - */ -typedef enum { - CAN_STD_ID = 0, /*!< Standard Identifier */ - CAN_EXT_ID = 1 /*!< Extended Identifier */ -} E_CAN_ID_TYPE; - -/** - * @details Message Frame types. - */ -typedef enum { - REMOTE_FRAME = 0, /*!< Remote Frame */ - DATA_FRAME = 1 /*!< Data Frame */ -} E_CAN_FRAME_TYPE; - -/** - * @details CAN message structure. - */ -typedef struct { - uint32_t IdType; /*!< Identifier Type */ - uint32_t FrameType; /*!< Frame Type */ - uint32_t Id; /*!< Message Identifier */ - uint8_t DLC; /*!< Data Length Code */ - uint8_t Data[8]; /*!< Data byte 0 ~ 7 */ -} STR_CANMSG_T; - -/** - * @details CAN mask message structure. - */ -typedef struct { - uint8_t u8Xtd; /*!< Extended Identifier */ - uint8_t u8Dir; /*!< Message Direction */ - uint32_t u32Id; /*!< Message Identifier */ - uint8_t u8IdType; /*!< Identifier Type */ -} STR_CANMASK_T; - -/** - * @details CAN operation mode: normal/basic mode. - */ -typedef enum { - CAN_NORMAL_MODE = 1, /*!< Normal Mode */ - CAN_BASIC_MODE = 2 /*!< Basic Mode */ -} CAN_MODE_SELECT; - -#define ALL_MSG 32 /*!< All Message ram number */ -#define MSG(id) id /*!< Message ram number */ - - -/*@}*/ /* end of group NUC472_442_CAN_EXPORTED_TYPEDEF */ - - -/** @addtogroup NUC472_442_CAN_EXPORTED_FUNCTIONS CAN Exported Functions - @{ -*/ - -/** - * @brief Get interrupt status - * - * @param[in] can The base address of can module - * - * @return CAN module status register value - * \hideinitializer - */ -#define CAN_GET_INT_STATUS(can) (can->STATUS) - -/** - * @brief Get specified interrupt pending status - * - * @param[in] can The base address of can module - * - * @return The source of the interrupt. - * \hideinitializer - */ -#define CAN_GET_INT_PENDING_STATUS(can) (can->IIDR) - -/** - * @brief Disable Wakeup function - * - * @param[in] can The base address of can module - * - * @return None - * \hideinitializer - */ -#define CAN_DISABLE_WAKEUP(can) (can->WU_IE = 0) - -/** - * @brief Enable Wakeup function - * - * @param[in] can The base address of can module - * - * @return None - * \hideinitializer - */ -#define CAN_ENABLE_WAKEUP(can) (can->WU_IE = CAN_WUEN_WAKUP_EN_Msk) - -/** - * @brief Get specified Message Object new data into bit value - * - * @param[in] can The base address of can module - * @param[in] u32MsgNum Specified Message Object number. (0 ~ 31) - * - * @return Specified Message Object new data into bit value. - * \hideinitializer - */ -#define CAN_GET_NEW_DATA_IN_BIT(can, u32MsgNum) (u32MsgNum < 16 ? can->NDAT1 & (1 << u32MsgNum) : can->NDAT2 & (1 << (u32MsgNum-16))) - - -/*---------------------------------------------------------------------------------------------------------*/ -/* Define CAN functions prototype */ -/*---------------------------------------------------------------------------------------------------------*/ -uint32_t CAN_SetBaudRate(CAN_T *tCAN, uint32_t u32BaudRate); -uint32_t CAN_Open(CAN_T *tCAN, uint32_t u32BaudRate, uint32_t u32Mode); -int32_t CAN_Transmit(CAN_T *tCAN, uint32_t u32MsgNum , STR_CANMSG_T* pCanMsg); -int32_t CAN_Receive(CAN_T *tCAN, uint32_t u32MsgNum , STR_CANMSG_T* pCanMsg); -void CAN_CLR_INT_PENDING_BIT(CAN_T *tCAN, uint8_t u32MsgNum); -void CAN_EnableInt(CAN_T *tCAN, uint32_t u32Mask); -void CAN_DisableInt(CAN_T *tCAN, uint32_t u32Mask); -int32_t CAN_SetMultiRxMsg(CAN_T *tCAN, uint32_t u32MsgNum , uint32_t u32MsgCount, uint32_t u32IDType, uint32_t u32ID); -int32_t CAN_SetRxMsg(CAN_T *tCAN, uint32_t u32MsgNum , uint32_t u32IDType, uint32_t u32ID); -int32_t CAN_SetTxMsg(CAN_T *tCAN, uint32_t u32MsgNum , STR_CANMSG_T* pCanMsg); -int32_t CAN_TriggerTxMsg(CAN_T *tCAN, uint32_t u32MsgNum); -uint32_t CAN_GetCANBitRate(CAN_T *tCAN); -void CAN_EnterInitMode(CAN_T *tCAN); -void CAN_LeaveInitMode(CAN_T *tCAN); -void CAN_EnterTestMode(CAN_T *tCAN, uint8_t u8TestMask); -void CAN_LeaveTestMode(CAN_T *tCAN); - -/*@}*/ /* end of group NUC472_442_CAN_EXPORTED_FUNCTIONS */ - -/*@}*/ /* end of group NUC472_442_CAN_Driver */ - -/*@}*/ /* end of group NUC472_442_Device_Driver */ - -#ifdef __cplusplus -} -#endif - -#endif //__CAN_H__ - -/*** (C) COPYRIGHT 2013 Nuvoton Technology Corp. ***/ - - - - -