tao_z
2022-08-07 f453cfb645516628a6d1fa36e2ca633e1da6d708
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/**
 * @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