$darkmode
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 设备的配置参数、运行状态、同步机制、数据队列、事件处理和回调等
内容,供驱动和上层使用
struct rt_device rt_can_device::parent |
继承自 rt_device 结构体
struct rt_can_ops* rt_can_device::ops |
指向 CAN 设备操作接口
rt_can_config_t rt_can_device::config |
CAN 设备配置参数(波特率、模式等)
can_work_status_t rt_can_device::status |
CAN 设备运行状态
rt_uint32_t rt_can_device::rece_valid_packets |
接收过滤后的包数量
rt_can_rx_fifo rt_can_device::rx_fifo |
接收 FIFO 缓冲区
struct rt_messagequeue rt_can_device::send_mq |
发送消息队列
struct rt_messagequeue rt_can_device::priv_send_mq |
高优先级发送消息队列
struct rt_mutex rt_can_device::lock |
同步互斥锁
struct rt_semaphore rt_can_device::sem |
控制发送流程的信号量
rt_uint32_t rt_can_device::errcode |
错误码
rt_uint32_t rt_can_device::resend_count |
重发次数
struct rt_event rt_can_device::event |
事件对象
struct rt_timer rt_can_device::timer |
软件定时器
rt_thread_t rt_can_device::tx_thread |
发送线程句柄
rt_uint32_t rt_can_device::event_mask |
事件掩码
rt_uint32_t rt_can_device::interrupt_mask |
中断掩码
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] | 底层驱动的附加参数,由事件代码不同,具体见下表 \
|
void(* rt_can_device::event_thread_callback) (struct rt_can_device *dev, rt_uint32_t code, void *param) |
线程事件回调函数
当事件线程检测到事件时触发该回调函数
dev[in] | 当前 CAN 设备指针 |
code[in] | 事件代码,可为以下取值之一或其组合 |
事件代码 | 事件描述 |
---|---|
RT_CAN_EVENT_SEND_SUCCESS | 发送成功 |
RT_CAN_EVENT_SEND_TIMEOUT | 发送超时 |
RT_CAN_EVENT_SEND_FAILURE | 发送失败 |
事件代码 | 事件描述 |
---|---|
RT_CAN_EVENT_HIGH_PRIORITY_MSG | 发送的消息为高优先级消息 |
param[in] | 指向 CAN 发送帧的 rt_can_msg_t 结构指针 |