/**
|
* @file Hal_can.h
|
* @author Ethan Tao (tzj0429@163.com)
|
* @brief
|
* @version 0.1
|
* @date 2021-12-18
|
*
|
* @copyright Copyright (c) 2021 Äþ²¨ÕýÀÊÆû³µÁ㲿¼þÓÐÏÞ¹«Ë¾
|
*
|
*/
|
#ifndef HAL_CAN__
|
#define HAL_CAN__
|
#include "xl_mcan.h"
|
extern void Hal_CANConfig(void);
|
|
struct Transport
|
{
|
void (*Read)();
|
void (*Write)();
|
};
|
typedef struct
|
{
|
uint32_t MCAN_ID; /*!< ±êʶ·û£¬11λ±ê×¼Ö¡»òÕß29Î»ÍØÕ¹Ö¡ */
|
uint32_t MCAN_FDBRS; /*!< ¿É±äËÙÂÊʹÄÜλ, ½ö²Ù×÷ÓÚFDģʽ */
|
uint32_t MCAN_FDESI; /*!< ´íÎó״̬λ, ½ö²Ù×÷ÓÚFDģʽ */
|
uint32_t MCAN_FF; /*!< Ö¡¸ñʽ */
|
uint32_t MCAN_RTR; /*!< Ô¶³Ì´«ÊäÇëÇó £¬Ô¶³ÌÖ¡»òÕßÊý¾ÝÖ¡ */
|
uint32_t MCAN_DLC; /*!< Êý¾Ý³¤¶È */
|
uint8_t MCAN_Data[8]; /*!< °üº¬µÄ½ÓÊÕÊý¾Ý£¬·¶Î§ÊÇ 0 µ½ 7 */
|
} CAN_PDU_t;
|
|
typedef enum CANIC_Mode
|
{
|
CANIC_NormalMode = 0,
|
CANIC_StandyByMode = 1
|
} CANIC_Mode_t;
|
|
extern void CAN_Transimit(CAN_PDU_t *frame);
|
extern void CAN_Receive(CAN_PDU_t *frame);
|
extern void Hal_StopCanTx(void);
|
#endif
|