$darkmode
RuiChing API 参考手册
V0.9.1
rt_can_device结构体 参考

CAN 设备结构体,表示一个完整的 CAN 控制器实例 更多...

成员变量

struct rt_device parent
 
struct rt_can_ops * ops
 
rt_can_config_t config
 
can_work_status_t status
 
rt_uint32_t rece_valid_packets
 
rt_can_rx_fifo rx_fifo
 
struct rt_messagequeue send_mq
 
struct rt_messagequeue priv_send_mq
 
struct rt_mutex lock
 
struct rt_semaphore sem
 
rt_uint32_t errcode
 
rt_uint32_t resend_count
 
struct rt_event event
 
struct rt_timer timer
 
rt_thread_t tx_thread
 
rt_uint32_t event_mask
 
rt_uint32_t interrupt_mask
 
void(* event_int_callback )(struct rt_can_device *dev, rt_uint32_t code, void *param)
 中断事件回调函数 更多...
 
void(* event_thread_callback )(struct rt_can_device *dev, rt_uint32_t code, void *param)
 线程事件回调函数 更多...
 

详细描述

CAN 设备结构体,表示一个完整的 CAN 控制器实例

该结构体封装了 CAN 设备的配置参数、运行状态、同步机制、数据队列、事件处理和回调等
内容,供驱动和上层使用

结构体成员变量说明

◆ parent

struct rt_device rt_can_device::parent

继承自 rt_device 结构体

◆ ops

struct rt_can_ops* rt_can_device::ops

指向 CAN 设备操作接口

◆ config

rt_can_config_t rt_can_device::config

CAN 设备配置参数(波特率、模式等)

◆ status

can_work_status_t rt_can_device::status

CAN 设备运行状态

◆ rece_valid_packets

rt_uint32_t rt_can_device::rece_valid_packets

接收过滤后的包数量

◆ rx_fifo

rt_can_rx_fifo rt_can_device::rx_fifo

接收 FIFO 缓冲区

◆ send_mq

struct rt_messagequeue rt_can_device::send_mq

发送消息队列

◆ priv_send_mq

struct rt_messagequeue rt_can_device::priv_send_mq

高优先级发送消息队列

◆ lock

struct rt_mutex rt_can_device::lock

同步互斥锁

◆ sem

struct rt_semaphore rt_can_device::sem

控制发送流程的信号量

◆ errcode

rt_uint32_t rt_can_device::errcode

错误码

◆ resend_count

rt_uint32_t rt_can_device::resend_count

重发次数

◆ event

struct rt_event rt_can_device::event

事件对象

◆ timer

struct rt_timer rt_can_device::timer

软件定时器

◆ tx_thread

rt_thread_t rt_can_device::tx_thread

发送线程句柄

◆ event_mask

rt_uint32_t rt_can_device::event_mask

事件掩码

◆ interrupt_mask

rt_uint32_t rt_can_device::interrupt_mask

中断掩码

◆ event_int_callback

void(* rt_can_device::event_int_callback) (struct rt_can_device *dev, rt_uint32_t code, void *param)

中断事件回调函数

当中断发生且满足 event_mask 条件时触发该回调函数

参数
dev[in]当前 CAN 设备指针
code[in]事件代码
param[in]底层驱动的附加参数,由事件代码不同,具体见下表 \
事件代码 事件描述 附加参数
RT_CAN_EVENT_RECEIVE_SUCCESS 接收成功事件 接收过滤后的包数量
RT_CAN_EVENT_ERROR 接收错误事件 错误代码,可以由控制参数 RT_CAN_CTL_PARSE_ERR_CODE 解析

◆ event_thread_callback

void(* rt_can_device::event_thread_callback) (struct rt_can_device *dev, rt_uint32_t code, void *param)

线程事件回调函数

当事件线程检测到事件时触发该回调函数

参数
dev[in]当前 CAN 设备指针
code[in]事件代码,可为以下取值之一或其组合

发送相关事件(互斥,使用 <tt>& RT_CAN_EVENT_SEND_MASK</tt> 判断)\n

事件代码 事件描述
RT_CAN_EVENT_SEND_SUCCESS 发送成功
RT_CAN_EVENT_SEND_TIMEOUT 发送超时
RT_CAN_EVENT_SEND_FAILURE 发送失败

非发送类事件(可与发送事件组合)\n

事件代码 事件描述
RT_CAN_EVENT_HIGH_PRIORITY_MSG 发送的消息为高优先级消息
参数
param[in]指向 CAN 发送帧的 rt_can_msg_t 结构指针