CAN

更新时间:2019-01-31 12:10:42

接口列表

函数名称 功能描述
hal_can_init 初始化指定CAN端口
hal_can_filter_init 初始化指定CAN端口滤波器
hal_can_send 从指定CAN端口发送数据
hal_can_recv 从指定CAN端口获取数据
hal_can_finalize 关闭指定CAN端口

接口详情

int32_t hal_can_init(can_dev_t *can)

描述 初始化指定CAN端口
参数 can:CAN设备描述,定义需要初始化的CAN参数
返回值 返回成功或失败, 返回0表示CAN初始化成功,非0表示失败

int32_t hal_can_filter_init(can_dev_t *can, const uint8_t filter_grp_cnt, can_filter_item_t *filter_config)

描述
初始化指定CAN端口滤波器
参数
i2c:CAN设备描述,定义需要初始化的I2C参数
filter_grp_cnt:滤波器计数值
filter_config:滤波器配置
返回值
返回成功或失败, 返回0表示I2C初始化成功,非0表示失败

int32_t hal_can_send(can_dev_t *can, can_frameheader_t *tx_header, const void *data, const uint32_t timeout)

描述
从指定的CAN端口发送数据
参数
can:CAN设备描述
tx_header:发送数据头
data:指向发送缓冲区的数据指针
timeout:超时时间(单位ms),如果希望一直等待设置为HAL_WAIT_FOREVER
返回值
返回成功或失败, 返回0表示数据发送成功,非0表示失败

int32_t hal_can_recv(can_dev_t *can, can_frameheader_t *rx_header, void *data, const uint32_t timeout)

描述
从指定的CAN端口接收数据
参数
can:CAN设备描述
tx_header:接收数据头
data:指向接收缓冲区的数据指针
timeout:超时时间(单位ms),如果希望一直等待设置为HAL_WAIT_FOREVER
返回值
返回成功或失败, 返回0表示成功接收,非0表示失败

int32_t hal_can_finalize(can_dev_t *can)

描述 关闭指定CAN端口
参数 can:CAN设备描述
返回值 类型:int 返回成功或失败, 返回0表示关闭成功,非0表示失败。

相关结数据结构

can_dev_t

typedef struct {
    uint8_t      port;   /* can port */
    can_config_t config; /* can config */
    void        *priv;   /* priv data */
} can_dev_t;

can_config_t

typedef struct {
    uint32_t baud_rate;           /* baud rate of can */
    uint8_t  ide;                 /* 0:normal can, 1:extend can */
    uint8_t  auto_bus_off;        /* 1:enable auto bus off, 0:disable */
    uint8_t  auto_retry_transmit; /* 1:enable retry transmit, 0:disable */
} can_config_t;

can_frameheader_t

typedef struct {
    uint32_t id;  /* id of can */
    uint8_t  rtr; /* 0:data frame, 1:remote frame */
    uint8_t  dlc; /* must <=8 */
} can_frameheader_t;

can_filter_item_t

typedef struct{
    uint8_t  rtr;         /* 0:data frame, 1:remote frame */
    uint32_t check_id;    /* the filter identification number */
    uint32_t filter_mask; /* the filter mask number or identification number */
} can_filter_item_t;

results matching ""

    No results matching ""