libxr
1.0
Want to be the best embedded framework
|
STM32CAN 类,用于处理 STM32 系统的 CAN 通道。 Provides handling for STM32 CAN channels. More...
#include <stm32_can.hpp>
Public Member Functions | |
STM32CAN (CAN_HandleTypeDef *hcan, uint32_t queue_size) | |
STM32CAN 类,用于处理 STM32 系统的 CAN 通道。 Provides handling for STM32 CAN. | |
ErrorCode | Init (void) |
初始化 | |
ErrorCode | AddMessage (const ClassicPack &pack) override |
添加 CAN 消息到系统 (Adds a CAN message to the system). | |
void | ProcessRxInterrupt () |
处理接收中断 | |
void | ProcessTxInterrupt () |
处理发送中断 | |
![]() | |
CAN () | |
构造 CAN 对象,可指定主题名称和通信域 (Constructs a CAN object with an optional topic name and domain). | |
struct | __attribute__ ((packed)) |
经典 CAN 消息结构 (Structure representing a classic CAN message). | |
void | Register (Callback cb, Type type, FilterMode mode=FilterMode::ID_RANGE, uint32_t start_id_mask=0, uint32_t end_id_match=UINT32_MAX) |
注册回调函数 Registers a callback function | |
Data Fields | ||
CAN_HandleTypeDef * | hcan_ | |
stm32_can_id_t | id_ | |
LockFreeQueue< ClassicPack > | tx_queue_ | |
uint32_t | fifo_ | |
struct { | ||
CAN_RxHeaderTypeDef header | ||
ClassicPack pack | ||
} | rx_buff_ | |
struct { | ||
CAN_TxHeaderTypeDef header | ||
ClassicPack pack | ||
} | tx_buff_ | |
uint32_t | txMailbox | |
Mutex | write_mutex_ | |
![]() | ||
ClassicPack | ||
Static Public Attributes | |
static STM32CAN * | map [STM32_CAN_NUMBER] = {nullptr} |
Additional Inherited Members | |
![]() | |
enum class | Type : uint8_t { STANDARD = 0 , EXTENDED = 1 , REMOTE_STANDARD = 2 , REMOTE_EXTENDED = 3 , TYPE_NUM } |
CAN 消息类型 (Enumeration of CAN message types). More... | |
enum class | FilterMode : uint8_t { ID_MASK = 0 , ID_RANGE = 1 } |
using | Callback = LibXR::Callback<const ClassicPack &> |
![]() | |
void | OnMessage (const ClassicPack &pack, bool in_isr) |
STM32CAN 类,用于处理 STM32 系统的 CAN 通道。 Provides handling for STM32 CAN channels.
Definition at line 38 of file stm32_can.hpp.
|
inline |
STM32CAN 类,用于处理 STM32 系统的 CAN 通道。 Provides handling for STM32 CAN.
hcan | STM32CAN对象 CAN object |
queue_size | 发送队列大小 Send queue size |
Definition at line 47 of file stm32_can.hpp.
|
inlineoverridevirtual |
添加 CAN 消息到系统 (Adds a CAN message to the system).
Implements LibXR::CAN.
Definition at line 144 of file stm32_can.hpp.
|
inline |
初始化
Definition at line 59 of file stm32_can.hpp.
|
inline |
处理接收中断
Definition at line 192 of file stm32_can.hpp.
|
inline |
处理发送中断
Definition at line 231 of file stm32_can.hpp.
uint32_t LibXR::STM32CAN::fifo_ |
Definition at line 276 of file stm32_can.hpp.
CAN_HandleTypeDef* LibXR::STM32CAN::hcan_ |
Definition at line 272 of file stm32_can.hpp.
CAN_RxHeaderTypeDef LibXR::STM32CAN::header |
Definition at line 281 of file stm32_can.hpp.
CAN_TxHeaderTypeDef LibXR::STM32CAN::header |
Definition at line 287 of file stm32_can.hpp.
stm32_can_id_t LibXR::STM32CAN::id_ |
Definition at line 274 of file stm32_can.hpp.
|
static |
Definition at line 277 of file stm32_can.hpp.
ClassicPack LibXR::STM32CAN::pack |
Definition at line 282 of file stm32_can.hpp.
LockFreeQueue<ClassicPack> LibXR::STM32CAN::tx_queue_ |
Definition at line 275 of file stm32_can.hpp.
uint32_t LibXR::STM32CAN::txMailbox |
Definition at line 291 of file stm32_can.hpp.
Mutex LibXR::STM32CAN::write_mutex_ |
Definition at line 292 of file stm32_can.hpp.